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.