PHP-FPM

PHP 🟡 Mid

Dé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

#core#performance#devops

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre