Recetas/nginxinicial
Contenido
Resumen de la receta
En esta receta se instala nginx php7 en un Debian Stretch y se verifica que puede mostrar páginas en html y php.
Requisitos
- Debian GNU/Linux Jessie 9.x
- nginx 1.10
- php 7.0.27
- Tener configurado los repositorios, ver Recetas/repositorio
Instalación de programas
apt-get install nginx-full php-fpm
- nginx-full: Servidor web nginx
- php-fpm: Lenguaje php
Configuración
La configuración de nginx por defecto solo nos mostrará las páginas html. La configuración por defecto de nginx, quitando los comentarios, tiene esta estructura:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } }
Donde define:
- El puerto IPv4 e IPv6 que estará escuchando: 80
- La carpeta del sitio que publicará: /var/www/html
- El orden en que buscará y cargará los archivos
- Y la configuración de la carpeta
Probando el servidor apache
Para probar el servidor nginx :
- Si estamos en la misma computadora abrimos en el navegador la direccion http://localhost/
- Si estamos en otra computadora, abrir en el navegador la dirección de la computadora http://<IP de la computadora remota donde se instalo apache> (Por ejemplo 192.168.1.5)
Configuración de php
Para que nginx pueda interpretar código php, es necesario enlazar nginx con php por:
- Módulo fpm de php
- Socket de PHP cgi
La configuración que se deberá agregar a la configuración por defecto para que interprete código php es:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; } error_log /var/log/nginx/nginx-error.log warn; access_log /var/log/nginx/nginx-access.log ; }
Donde:
- Habilitamos que pueda interpretar el arcivo index.php
- Habilitamos que pueda interpretar código php vía socket cgi
- Habilitamos los logs personalizados
Probando que el servidor apache pueda ejecutar código php
Para verificar que el servidor puede ejecutar código php lo que hacemos es:
Verificar cuál es el directorio que publica nuestro servidor web, para nuestro caso como es una instalacion nueva, la vemos en el archivo
nano /etc/apache2/sites-enabled/000-default.conf
Ahí notamos que la carpeta que publica es la /var/www/html/
Ahora solo creamos un archivo llamado /var/www/html/phpinfo.php con el siguiente contenido:
nano /var/www/html/phpinfo.php
<?php
phpinfo();
?>
Luego abrimos el archivo con http://localhost/phpinfo.php
Deberá aparecer el siguiente sitio .
Nota: En caso de que no muestre nada o no funcione, podemos ver los logs del nginx para ver que parte es la que esta fallando con el comando:
tail /var/log/nginx/*.log
ó
tail -f /var/log/nginx/*.log
Con la opción -f muestra las lineas conforme se van agregando. Para salirse de ese modo solo se presionan las teclas Ctrl + C