Cómo instalar y configurar Nginx con PHP-FPM en CentOS 8

Nginx es un servidor web gratuito, de código abierto y uno de los más potentes del mundo. Se utiliza principalmente para sitios web muy cargados y con mucho tráfico. Nginx es conocido por su estabilidad, configuración sencilla y bajo consumo de recursos. Puedes utilizar Nginx como servidor web y proxy inverso.

FPM (FastCGI Process Manager) es una implementación alternativa de PHP FastCGI y se utiliza para sitios web de alto tráfico. Se utiliza habitualmente con servidores web para servir páginas PHP. PHP-FPM utiliza menos memoria y CPU en comparación con cualquier otro método de ejecución de PHP. PHP-FPM es más rápido que los métodos tradicionales basados en CGI para entornos PHP multiusuario. PHP-FPM también permite ejecutar varias versiones de PHP a la vez.

Este tutorial nos enseñará cómo instalar Nginx con soporte PHP-FPM en CentOS 8.

Requisitos previos

  • Un servidor que ejecute CentOS 8.
  • Una contraseña de root configurada en tu servidor.

Cómo empezar

Por defecto, SELinux está activado en el servidor CentOS 8. Así que primero tendrás que desactivarlo.

Puedes hacerlo editando el archivo /etc/selinux/config:

nano /etc/selinux/config

Realiza los siguientes cambios:

SELINUX=disabled

Guarda y cierra el archivo. A continuación, reinicia tu servidor para aplicar los cambios.

Instalar el servidor web Nginx

En primer lugar, instala el servidor web Nginx con el siguiente comando:

yum install nginx -y

Una vez instalado Nginx, inicia el servicio Nginx y habilítalo para que se inicie al arrancar con el siguiente comando:

systemctl start nginx
systemctl enable nginx

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar PHP y PHP-FPM

A continuación, instala PHP y PHP-FPM ejecutando el siguiente comando:

yum install php php-cli php-common php-fpm -y

Una vez instalados todos los paquetes, inicia el servicio PHP-FPM y habilítalo para que se inicie tras el reinicio del sistema:

systemctl start php-fpm
systemctl enable php-fpm

También puedes comprobar el estado del servicio PHP-FPM con el siguiente comando:

systemctl status php-fpm

Deberías obtener la siguiente salida:

? php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-10-17 05:39:11 EDT; 4min 40s ago
 Main PID: 1475 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 5060)
   Memory: 28.5M
   CGroup: /system.slice/php-fpm.service
           ??1475 php-fpm: master process (/etc/php-fpm.conf)
           ??1478 php-fpm: pool www
           ??1479 php-fpm: pool www
           ??1480 php-fpm: pool www
           ??1481 php-fpm: pool www
           ??1482 php-fpm: pool www

Oct 17 05:39:10 centos8 systemd[1]: Starting The PHP FastCGI Process Manager...
Oct 17 05:39:11 centos8 systemd[1]: Started The PHP FastCGI Process Manager.

Crear una página índice para Nginx

A continuación, tendrás que crear una página info . php de ejemplo para comprobar si Nginx utiliza PHP-FPM o no.

Puedes crear un info.php dentro del directorio raíz del documento por defecto de Nginx, como se muestra a continuación:

nano /var/www/html/info.php

Añade las siguientes líneas:

<?php
    phpinfo();
?>

Guarda y cierra el archivo cuando hayas terminado.

A continuación, cambia la propiedad del archivo info.php a nginx:

chown -R nginx: /var/www/html/info.php/

Configurar Nginx con PHP-FPM

A continuación, tendrás que crear un archivo de configuración del host virtual Nginx y habilitar el soporte PHP-FPM.

Puedes crearlo con el siguiente comando:

nano /etc/nginx/conf.d/example.conf

Añade las siguientes líneas:

server {
    listen 80;
    server_name example.com;
    root /var/www/html/;
    index info.php;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }

}

Guarda y cierra el archivo. A continuación, comprueba si Nginx tiene algún error de sintaxis con el siguiente comando:

nginx -t

A continuación, habilita el archivo de host virtual de Nginx y reinicia el servicio Nginx para aplicar la configuración:

systemctl restart nginx

Prueba Nginx con soporte PHP-FPM

Ahora, abre tu navegador web y escribe la URL http://example.com. Serás redirigido a la siguiente página:

En la página anterior, deberías ver que PHP-FPM está cargado con el servidor web Nginx.

Conclusión

Enhorabuena! has instalado con éxito Nginx con soporte para PHP-FPM en un servidor CentOS 8. Ahora puedes utilizar PHP-FPM para alojar varios sitios web que utilicen distintas versiones de PHP.

También te podría gustar...