Si el computador que usas es de una empresa y para instalar programas necesitas permisos de administrador, te muestro con como instalar un servidor web ultra liviano y facil de configurar.
A continuación la receta:
- Descarga de la página principal de Nginx la versión estable.
- Descomprime el archivo y coloca la carpeta dentro de la unidad C:
- Dentro de la carpeta \nginx-1.18.0\conf\nginx.conf cambia la configuración del puerto 80 a 8080, puede ser otro puerto.
- Desde la misma ventana del explorador de archivos de win sobre la ruta donde esta el .exe, borra la ruta y escribe cmd, esto te abrira un cmd ya dentro de misma.
- Ejecuta el programa con Nginx + Enter
- En un browser escribe localhost:8080 o 127.0.0.1:8080 y listo servidor web.
- Para ver las opciones en la linea de comandos ejecuta Nginx -h y despliega los parametros que puedes usar, verifica en el administrador de tarea que el servicio es UP !, para bajar el server basta con que abras otro cmd y ejecutes el comando nginx -s stop Vamos a configurar PHP7 pero ya !:
- Vamos a la pagina oficial de PHP y descargamos https://windows.php.net/download#php-7.4 según tu arquitectura del computador la versión del PHP (VC15 x64 Thread Safe), Non Thread Safe indica que no es multi-hilo.
- En mi caso lo descomprimi dentro de la carpeta de Nginx.
- Busca y copia este archivo php.ini-development y pegalo alli mismo y renombralo como php.ini
- Edita ese archivo de configuración y busca doc_root = aca colocas las ruta del Servidor Web en mi caso es “C:/nginx-1.18.0/html” (Cambia lo que esta entre comillado);
- Busca ;extension_dir = “ext” y cambialo por esto extension_dir = “C:/nginx-1.18.0/php-7.4.5-Win32-vc15-x64/ext”, elimina el ;
- Busca ;cgi.force_redirect = 1 y remplaza por cgi.force_redirect = 0
- Busca y remplaza de la siguiente manera:
extension=bz2
extension=curl
extension=ffi
extension=ftp
extension=fileinfo
extension=gd2
extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=ldap
extension=mbstring
;extension=exif ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
extension=odbc
extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
extension=pdo_odbc
extension=pdo_pgsql
;extension=pdo_sqlite
extension=pgsql
;extension=shmop
extension=soap
;extension=sockets
;extension=sodium
extension=sqlite3
;extension=tidy
extension=xmlrpc
;extension=xsl
- Entra en el archivo de configuración Nginx, busca y descomenta de la siguiente manera: (Recuerda cambiar las ruta según el nombre de tu unidad y carpeta)
location / {
root html;
index index.php index.html index.htm;
} location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
} - Dentro de la carpeta html de Nginx crea un documento index.php que contenga la función phpinfo(); dentro de sus respectivas tag php
- Ejecuta un cmd dentro dentro la carpeta php en mi caso C:/nginx-1.18.0/php-7.4.5-Win32-vc15-x64/ y ejecutas el comando php-cgi.exe -b 127.0.0.1:9000
- Si tenias abierto el servidor pasa el comandando nginx -s reload o inicia nuevamente nginx y listo, verifica en el browser la info PHP
- Luego borras todos los archivos y dentro colocas tu proyectos web. OJO recuerda si tienes este error cuando ejecutas el servidor web :bind() to 0.0.0.0:80 failed (10013: Intento de acceso a un socket no permitido por sus permisos de acceso).
Cambia dentro del archivo \nginx-1.18.0\conf\nginx.conf cambia la configuración al puerto de 80 a 8080. Comandos:
nginx -s stop (desde cmd).
nginx -s reload
nginx -h para a ayuda.
Ahora vamos a complicar un poco las cosas pero para mejorar:
- Vamos a cortar del archivo nginx.conf este fragmento: server {
listen 8080;
server_name localhost;#charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.php index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ {root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params;} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #}
} - vamos a crear una carpeta que se llame server o como quieran, creamos un documento default.conf que contenga lo que cortamos y lo guardamos.
- Incluimos en el archivo de configuración nginx.conf esta linea justo donde cortamos el fragmento anterior include ../server/*.conf;
- En la carpeta server creamos otra instancia que la llamo server_400.conf y le agregamos las siguientes lineas:
server
{
listen 400;
server_name localhost;
root htdocs;
index index.html;
} - Creamos una carperta con el nombre htdocs, incluimos el archivo index.html que contenga cualquier info que quieran.
- Recargan el nginx -s reload y listo ahora por el puerto 400 tienen otro servicio web. De esta manera pueden ir creando tantas instancias web quieran con nombre diferentes por supuesto y puertos diferentes.
Si tienes problemas para levantar el servidor web debes de verificar si tienes instalado Microsoft Visual C++ 2015 Redistributable
Ahora si nos vemos !!!
Agradecemos la participación en este post a nuestra colega Ing. Florisbel