PHP-FPM (FastCGI Process Manager) es una alternativa altamente eficiente para ejecutar PHP en servidores web como Apache y Nginx. Su capacidad para gestionar procesos y optimizar el uso de recursos lo convierte en una opción ideal para entornos de alto tráfico.
1. Instalación de PHP-FPM en Linux
Instalación en Debian y Ubuntu
sudo apt update
sudo apt install -y php-fpm
Verifica el estado del servicio:
sudo systemctl status php-fpm
Instalación en RHEL, CentOS y Fedora
sudo dnf install -y php-fpm
sudo systemctl enable --now php-fpm
2. Configuración de PHP-FPM
Configuración para Apache
Si usas Apache, instala el módulo libapache2-mod-fcgid
:
sudo apt install -y libapache2-mod-fcgid
Habilita el módulo y reinicia el servicio:
sudo a2enmod proxy_fcgi setenvif
sudo systemctl restart apache2
Edita el archivo de configuración de Apache para usar PHP-FPM:
<VirtualHost *:80>
ServerName tu-dominio.com
DocumentRoot /var/www/html
<FilesMatch ".+\.php$">
SetHandler "proxy:unix:/run/php/php-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
Reinicia Apache para aplicar los cambios:
sudo systemctl restart apache2
Configuración para Nginx
Edita la configuración del servidor en Nginx:
server {
listen 80;
server_name tu-dominio.com;
root /var/www/html;
index index.php index.html;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Reinicia Nginx para aplicar los cambios:
sudo systemctl restart nginx
3. Ajustes de Rendimiento en PHP-FPM
Edita el archivo de configuración de PHP-FPM (/etc/php/*/fpm/pool.d/www.conf
) y ajusta los valores según la carga del servidor:
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
Luego, reinicia PHP-FPM:
sudo systemctl restart php-fpm
Con PHP-FPM correctamente configurado, tu servidor será más eficiente y manejará mejor las solicitudes de PHP, mejorando la velocidad y estabilidad del sitio web.