Janvier 13, 2026Guides
Comment configurer PHP-FPM pour des performances optimales
Guide complet sur la configuration des paramètres du pool PHP-FPM, l'optimisation des performances et l'intégration avec Nginx.

PHP-FPM (FastCGI Process Manager) est une implémentation alternative de PHP FastCGI avec des fonctionnalités supplémentaires utiles pour les sites web à fort trafic. Une configuration appropriée peut améliorer considérablement les performances de votre serveur et l'utilisation des ressources.
Installation de PHP-FPM
bash
# Ubuntu/Debian
sudo apt update
sudo apt install php-fpm php-mysql php-mbstring php-xml php-curl -y
# CentOS/RHEL
sudo yum install php-fpm php-mysql php-mbstring php-xml php-curl -y
# Démarrer et activer PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpmConfiguration du pool PHP-FPM
Modifiez le fichier de configuration du pool pour optimiser les performances :
bash
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
# Paramètres clés :
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data
# Gestion des processus
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500Optimisation des performances
Optimisez PHP-FPM pour les ressources de votre serveur :
bash
# Calculer le max_children optimal :
# (RAM totale - Autres services) / (Mémoire par processus PHP)
# Exemple : (2 Go - 500 Mo) / 50 Mo = 30 max_children
# Modifier php.ini pour de meilleures performances
sudo nano /etc/php/8.1/fpm/php.ini
# Paramètres recommandés :
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M
# Redémarrer PHP-FPM
sudo systemctl restart php-fpmConfiguration de Nginx
Configurez Nginx pour fonctionner avec PHP-FPM :
bash
sudo nano /etc/nginx/sites-available/yourdomain.com
# Ajouter la gestion de PHP :
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Tester et recharger Nginx
sudo nginx -t
sudo systemctl reload nginxSurveillance de PHP-FPM
bash
# Vérifier l'état de PHP-FPM
sudo systemctl status php-fpm
# Voir les processus PHP-FPM
ps aux | grep php-fpm
# Vérifier l'état du pool (si la page d'état est activée)
curl http://localhost/status
# Voir les journaux
sudo tail -f /var/log/php8.1-fpm.logConseils d'optimisation PHP-FPM
- Ajustez pm.max_children en fonction de la RAM disponible
- Utilisez pm = dynamic pour la plupart des cas d'utilisation
- Définissez pm.max_requests pour éviter les fuites de mémoire
- Activez l'opcache pour de meilleures performances
- Surveillez régulièrement l'état de PHP-FPM
- Utilisez des pools séparés pour différentes applications
- Gardez PHP et PHP-FPM à jour