Retour au blog
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.

Comment configurer PHP-FPM pour des performances optimales

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-fpm

Configuration 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 = 500

Optimisation 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-fpm

Configuration 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 nginx

Surveillance 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.log

Conseils 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