Este tutorial paso a paso le mostrará cómo instalar y configurar Nginx para ejecutar PHP en su servidor usando PHP-FPM.
Nginx + PHP es uno de los grupos de software más populares que puede usar para crear su sitio web. Este tutorial paso a paso le mostrará cómo instalar y configurar Nginx para ejecutar PHP en su servidor usando PHP-FPM.
Nginx es la combinación ideal con PHP-FPM. Es un servidor web estable reconocido por su impresionante rendimiento y bajo consumo de recursos.
PHP se ejecuta como un servicio aislado cuando usa PHP-FPM. Emplear esta versión de PHP como intérprete de lenguaje significa que las solicitudes se procesarán a través de un socket UNIX. El servidor Nginx solo manejará solicitudes HTTP, mientras que PHP-FPM interpreta el código PHP.
1. Instalando Nginx
Ubuntu / Debian
Debido a que Nginx está disponible en los repositorios predeterminados de Debian y Ubuntu, es posible instalarlo desde estos repositorios utilizando el sistema de empaquetado apt.
sudo apt install nginx
CentOS / AlmaLinux / Rocky Linux
Para obtener la última versión de Nginx, los usuarios de CentOS, AlmaLinux o Rocky Linux primero deben instalar el repositorio EPEL.
EPEL (Extra Packages for Enterprise Linux) es un proyecto de repositorio basado en la comunidad gratuito y de código abierto del equipo de Fedora que proporciona paquetes de software complementarios de alta calidad para distribuciones de Linux basadas en RHEL.
sudo yum install epel-release
Luego puede instalar el servidor Nginx.
sudo yum install nginx
Fedora
Nginx está disponible en los repositorios predeterminados de Fedora y se puede instalar directamente usando dnf
administrador de paquetes.
sudo dnf install nginx
2. Instalando PHP-FPM
Ubuntu / Debian
Para instalar PHP en Ubuntu o Debian, simplemente ejecute el siguiente comando:
sudo apt install php-fpm
CentOS
La versión de PHP disponible por defecto en los servidores de CentOS está desactualizada. Por ese motivo, necesitaremos instalar un repositorio de paquetes de terceros para obtener PHP 7.
CentOS 7
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm
CentOS 8
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm
3. Configuración de NGINX para ejecutar PHP usando PHP-FPM
Una vez que Nginx y PHP están instalados, podemos configurar Nginx para enviar solicitudes de PHP a PHP-FPM.
Tendremos que crear un archivo de configuración de bloque de servidor Nginx para ejecutar PHP con FPM. Después de eso, puede crear un nuevo VirtualHost según sus requisitos, habilitando cualquier nuevo VirtualHost.
sudo vim /etc/nginx/sites-available/example.com
Reemplaza example.com
con el dominio o la dirección IP de su sitio y la root
directiva con el directorio raíz de su sitio.
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm;
server_name example.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
Guarde sus cambios en el archivo de configuración y cree un enlace al directorio habilitado del sitio.
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
Asegúrese de que el nombre del archivo de socket de PHP (en nuestro caso, php7.4-fpm.sock
) especificado en el fastcgi_pass
directiva es correcta.
ls -l /var/run/php/
total 4
-rw-r--r-- 1 root root 5 Dec 1 17:43 php7.4-fpm.pid
srw-rw---- 1 www-data www-data 0 Dec 1 17:43 php7.4-fpm.sock
lrwxrwxrwx 1 root root 30 Dec 1 17:43 php-fpm.sock -> /etc/alternatives/php-fpm.sock
Si el nombre es diferente de php7.4-fpm.sock
, simplemente reemplácelo en el bloque del servidor que se muestra arriba con el actual de su servidor.
Luego reinicie el servicio Nginx para recargar los cambios.
sudo systemctl restart nginx.service
4. Probar la configuración
Cree un archivo PHP de prueba para verificar que PHP-FPM funciona y está integrado con Nginx. En el bloque del servidor anterior, nuestro sitio se sirve desde /var/www/html
, por lo que crearemos un archivo de prueba allí:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Finalmente, accede a info.php
desde un navegador web, utilizando el dominio de su sitio o la dirección IP del servidor. Debería ver la página de configuración de PHP:
Conclusión
¡Felicidades! Configuró Nginx para manejar solicitudes de PHP a través de PHP-FPM.
Hay algunos pasos siguientes que podría tomar desde aquí. Por ejemplo, debe asegurarse de que las conexiones a su servidor estén seguras. Pero, ¿cómo hacerlo?
Siga nuestro tutorial paso a paso para adquirir un certificado Let's Encrypt SSL gratuito para su servidor.