PHP-FPM
PHP 🟡 MidDéfinition
FastCGI Process Manager : l'implémentation FastCGI principale de PHP pour les sites chargés. Il gère des pools de processus (uid, chroot, port distincts), trois modes d'engendrement (static, dynamic, ondemand), un slowlog des scripts lents et fastcgi_finish_request(). Nginx ou Apache lui transmettent les requêtes via socket.
Analogie
Le chef de salle qui décide combien de serveurs travaillent selon l'affluence.
Exemple de code
# /etc/php/8.4/fpm/pool.d/www.conf
[www]
listen = /run/php/php8.4-fpm.sock
pm = dynamic
pm.max_children = 20
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
request_slowlog_timeout = 5s
# nginx
# location ~ \.php$ { fastcgi_pass unix:/run/php/php8.4-fpm.sock; include fastcgi.conf; }
Cas d'usage
Toute prod PHP derrière nginx : dimensionner pm.max_children selon la RAM, isoler les sites par pool, diagnostiquer les lenteurs via le slowlog.
Anti-pattern
Exposer le port FastCGI sur un réseau non sûr : un client qui ouvre la connexion contrôle auto_prepend_file et exécute du code arbitraire.
Termes liés
Fiche mise à jour le 2026-09-27