Tabla de Contenidos

Servidor web NGINX con PHP

Al utilizar PHP-FPM (FastCGI Process Manager), el motor intérprete de PHP corre como un servicio aparte, el cual puede recibir peticiones a través de un socket TCP/IP o UNIX tradicional. De esta forma se tienen dos servicios: Nginx para manejar el protocolo HTTP y PHP-FPM para interpretar código PHP. Lo cual resulta más eficiente, ya que se invoca a PHP sólo cuando es necesario y mejora mucho la eficiencia de memoria.

Instalación y configuración

Instalo el servicio php-fpm en Debian 9 con

aptitude install php-fpm

Algunas órdenes relativas al servicio:

service php7.0-fpm status, start, stop, restart

Configuración de FPM

Su fichero de configuración es /etc/php/7.0/fpm/pool.d/www.conf. Aunque las opciones que vienen por defecto nos pueden servir para hacer un uso del servidor, algunas de las opciones que podemos modificar son:

De momento lo dejamos tal como está. Los parámetros de configuración principales podrían quedar de la siguiente forma:

[...]

user = www-data
group = www-data

[...]

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

[...]

pm = dynamic
pm.max_children = 75
pm.start_servers = 3
pm.min_spare_servers = 3
pm.max_spare_servers = 10

[...]

Configuración de PHP

Configuración de NGINX

index index.php index.html index.htm index.nginx-debian.html;

server_name _;

location / {
   try_files $uri $uri/ =404;
}

# pass the PHP scripts to FastCGI server

location ~ \.php$ {
   include snippets/fastcgi-php.conf;
   
   fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}

Comprobación

El fichero html del servidor web lo copio con un nuevo nombre: index.php. Y añado en el cuerpo del documento algunos cambios para comprobar que ahora es el primer fichero visualizado en el servidor, según el orden indicado en el apartado anterior.

También añado una instrucción en PHP para comprobarlo: En este ejemplo muestra la información acerca de la versión y configuración del PHP instalado en el servidor.

<?
 phpinfo();
?>