PHP-FPM est présent sur la majorité des serveurs PHP modernes, mais peu de développeurs débutants savent réellement à quoi il sert. Pourtant, comprendre son fonctionnement permet de mieux saisir comment un serveur exécute un script PHP, pourquoi certains sites sont plus rapides que d’autres et dans quels cas il est utile d’utiliser ce gestionnaire de processus.
Dans ce tutoriel, vous découvrirez simplement ce qu’est PHP-FPM, comment vérifier s’il est activé sur un serveur grâce à phpinfo(), l’installer sur votre machine et le faire fonctionner avec Apache ou Nginx. À la fin de cette lecture, vous comprendrez enfin ce qui se passe en coulisses lorsqu’une page PHP est affichée dans votre navigateur.
- Comprendre le rôle de PHP-FPM et son impact sur les performances d’un site PHP.
- Apprendre à vérifier en quelques secondes si votre serveur utilise PHP-FPM.
- Mettre en place un environnement local proche d’un serveur de production avec Apache ou Nginx.
Quand on débute avec PHP, on pense souvent que le serveur web exécute directement les fichiers .php. En réalité, ce n’est pas toujours aussi simple. Sur beaucoup de serveurs modernes, PHP est exécuté par un outil spécialisé : PHP-FPM.
Derrière ce nom un peu barbare, PHP-FPM signifie PHP FastCGI Process Manager, se cache un gestionnaire de processus chargé de faire tourner PHP de manière plus efficace, plus stable et plus rapide.
Qu’est-ce que PHP-FPM ?
PHP-FPM est un système qui permet au serveur web, comme Apache ou Nginx, de déléguer l’exécution du code PHP à un service spécialisé.
Imaginez un restaurant. Le serveur en salle prend les commandes, mais il ne cuisine pas lui-même. Il transmet les plats à préparer à la cuisine. Ici, le serveur web joue le rôle du serveur en salle, et PHP-FPM joue le rôle de la cuisine.
Quand un visiteur demande une page PHP, le serveur web reçoit la requête, puis l’envoie à PHP-FPM. PHP-FPM exécute le script PHP, génère du HTML, puis renvoie le résultat au serveur web, qui l’affiche au navigateur.

PHP-FPM ne remplace donc pas Apache ou Nginx : Il travaille avec eux.
À quoi sert PHP-FPM ?
PHP-FPM sert principalement à mieux gérer l’exécution de PHP.
Sans entrer dans des détails trop complexes, PHP-FPM garde en mémoire plusieurs processus PHP prêts à travailler. Ainsi, quand une requête arrive, il n’a pas besoin de tout redémarrer à chaque fois. C’est plus rapide et plus propre.
Concrètement, PHP-FPM permet de mieux gérer :
- les performances
- les pics de visiteurs
- la consommation mémoire
- la stabilité du serveur
- la séparation entre le serveur web et PHP
Sur un site WordPress, par exemple, chaque page peut déclencher beaucoup de code PHP : thème, extensions, requêtes vers la base de données, hooks, templates… PHP-FPM aide à traiter tout cela plus efficacement.
Quand utiliser PHP-FPM ?
PHP-FPM est particulièrement utile si vous utilisez un serveur moderne, surtout avec Nginx. En effet, Nginx ne sait pas exécuter PHP directement. Il doit forcément passer par un système externe comme PHP-FPM.
Avec Apache, plusieurs modes sont possibles. Apache peut utiliser PHP directement via mod_php, mais il peut aussi passer par PHP-FPM grâce à FastCGI. Aujourd’hui, PHP-FPM est souvent préféré, car il est plus souple et mieux adapté aux hébergements modernes.
FastCGI est un protocole qui permet à un serveur web, comme Apache ou Nginx, de communiquer avec un programme externe chargé d’exécuter le code PHP. Au lieu de lancer un nouveau processus PHP à chaque visite, FastCGI réutilise des processus déjà en cours d’exécution, ce qui améliore les performances et réduit le temps de réponse du serveur. PHP-FPM est justement une implémentation moderne de FastCGI spécialement conçue pour gérer efficacement les processus PHP.
Vous utilisez probablement PHP-FPM si votre site est hébergé sur un serveur mutualisé récent, un VPS, un serveur dédié ou une configuration Nginx.
Comment savoir si PHP-FPM est actif avec phpinfo()
La méthode la plus simple consiste à utiliser la fonction phpinfo(). Elle affiche toutes les informations de configuration PHP.
Créez un fichier nommé info.php à la racine de votre site :
<?php
// Affiche toutes les informations sur PHP
phpinfo();
Ensuite, ouvrez ce fichier dans votre navigateur : https://votre-site.fr/info.php et cherchez la ligne Server API.
Si vous voyez :
Server API => FPM/FastCGI
alors PHP-FPM est utilisé.
Si vous voyez plutôt :
Server API => Apache 2.0 Handle
cela signifie que PHP est exécuté directement par Apache avec mod_php.
Si vous voyez :
Server API => CGI/FastCGI
PHP passe par FastCGI, mais pas forcément PHP-FPM.

Attention : une fois le test terminé, supprimez le fichier info.php. Il contient beaucoup d’informations sensibles sur votre serveur. Ce n’est pas le genre de fichier qu’on laisse traîner sur Internet, sauf si vous aimez offrir les clés de la maison avec un petit ruban autour.
Installer PHP-FPM en local
Sur macOS, la méthode la plus simple consiste à utiliser Homebrew.
Commencez par installer PHP :
brew install php
Avec Homebrew, PHP-FPM est généralement installé avec PHP. Vous n’avez donc pas besoin d’installer un paquet séparé.
Démarrez ensuite le service PHP :
brew services start php
Vérifiez que PHP tourne bien :
brew services list
Vous devriez voir une ligne ressemblant à ceci :
php started
Vous pouvez aussi vérifier la version de PHP-FPM :
php-fpm -v

Puis tester la configuration :
php-fpm -t
Si tout va bien, vous devriez obtenir un message indiquant que la configuration est correcte.

Créer un fichier PHP de test
Créez un dossier de test, par exemple :
mkdir ~/sites/test-php-fpm
cd ~/sites/test-php-fpm
Ajoutez un fichier index.php :
<?php
// Petit test simple pour vérifier que PHP fonctionne
echo "Bonjour depuis PHP-FPM !";
Ce fichier sera utilisé par Apache ou Nginx pour vérifier que PHP-FPM exécute bien votre code PHP.
Des formations informatique pour tous !
Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…
Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.
Découvrez mes formations Qui suis-je ?Faire fonctionner PHP-FPM avec Nginx
Nginx ne lit pas PHP directement. Il doit envoyer les fichiers .php à PHP-FPM.
Installez Nginx :
brew install nginx
Puis ouvrez le fichier de configuration Nginx. Avec Homebrew, il se trouve souvent ici :
nano /opt/homebrew/etc/nginx/nginx.conf
Sur les anciens Mac Intel, le chemin peut être :
nano /usr/local/etc/nginx/nginx.conf
Ou depuis le Finder :
- Cliquez sur Aller → Aller au dossier… (
⌘ + Maj + G). - Collez :
/opt/homebrew/etc/nginx/ - Appuyez sur Entrée.
Vous verrez alors le fichier nginx.conf.
Le plus simple est de supprimer tout le serveur d’exemple et de remplacer le contenu du bloc http par ceci :
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
root /Users/votre-nom/sites/test-php-fpm;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
}
- Enregistrer le fichier :
Ctrl+O(la lettre O, comme « Output ») - Appuyez sur Entrée pour confirmer le nom du fichier.
- Quitter nano :
Ctrl+X
Ici, fastcgi_pass indique à Nginx où trouver PHP-FPM. Selon votre configuration, PHP-FPM peut écouter sur le port 9000 ou sur un fichier socket.
Redémarrez Nginx :
brew services restart nginx
Puis ouvrez :
http://localhost:8080
Si vous voyez :
Bonjour depuis PHP-FPM !
c’est gagné.
Faire fonctionner PHP-FPM avec Apache
Apache peut aussi communiquer avec PHP-FPM. Pour cela, il utilise des modules comme proxy_fcgi.
Sur macOS avec Homebrew, installez Apache :
brew install httpd
Activez les modules nécessaires dans la configuration Apache :
LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so
Ajoutez ensuite une configuration de VirtualHost :
<VirtualHost *:8081>
ServerName localhost
DocumentRoot "/Users/votre-nom/sites/test-php-fpm"
<Directory "/Users/votre-nom/sites/test-php-fpm">
AllowOverride All
Require all granted
</Directory>
# Tous les fichiers PHP sont envoyés à PHP-FPM
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</VirtualHost>
Redémarrez Apache :
brew services restart httpd
Puis ouvrez :
http://localhost:8081
Là encore, si votre message PHP s’affiche, Apache communique bien avec PHP-FPM.
Arrêter les services
Arrêter Nginx
brew services stop nginx
Arrêter PHP-FPM
brew services stop php
Vérifier qu’ils sont bien arrêtés
brew services list
Vous devriez voir :
nginx none
php none
PHP-FPM et WordPress
WordPress est un excellent exemple d’utilisation de PHP-FPM. Quand une personne visite une page WordPress, le serveur doit charger le cœur de WordPress, le thème, les extensions, puis générer la page.
Avec PHP-FPM, ces traitements sont mieux organisés. Le serveur peut gérer plusieurs visiteurs en parallèle grâce à ses processus PHP.
Sur un hébergement mutualisé, vous n’avez généralement pas à configurer PHP-FPM vous-même. L’hébergeur s’en occupe. En revanche, il est utile de savoir vérifier s’il est actif, notamment avec phpinfo().
Les erreurs fréquentes à connaître
La première erreur classique est de croire que PHP-FPM est un serveur web. Ce n’est pas le cas. PHP-FPM exécute PHP, mais il ne remplace pas Apache ou Nginx.
Deuxième confusion : penser que PHP-FPM accélère magiquement un mauvais code. Il améliore la gestion de PHP, mais si votre site charge 45 extensions inutiles, 12 scripts bloquants et une base de données fatiguée, PHP-FPM ne fera pas de miracle. Il aide le moteur, mais il ne transforme pas une brouette en Formule 1.
Enfin, attention aux ports et aux sockets. Si Nginx ou Apache cherche PHP-FPM au mauvais endroit, vos fichiers PHP ne fonctionneront pas. Dans ce cas, vérifiez la valeur de fastcgi_pass ou de SetHandler.
PHP-FPM est-il obligatoire pour utiliser PHP ?
Non. PHP peut fonctionner sans PHP-FPM, par exemple avec le module mod_php d’Apache. En revanche, PHP-FPM est aujourd’hui largement utilisé sur les serveurs modernes, car il offre de meilleures performances et une gestion plus efficace des scripts PHP.
PHP-FPM rend-il automatiquement un site plus rapide ?
PHP-FPM améliore la manière dont les scripts PHP sont exécutés, ce qui peut réduire le temps de réponse du serveur. Toutefois, il ne corrige pas un site mal optimisé. La qualité du code, les requêtes SQL, le cache et les performances du serveur restent tout aussi importants.
Peut-on utiliser PHP-FPM avec WordPress ?
Oui. La majorité des hébergements WordPress récents utilisent déjà PHP-FPM, souvent sans que vous ayez à le configurer. Il fonctionne parfaitement avec WordPress et contribue à mieux gérer les visites simultanées et les traitements PHP.
PHP-FPM est un outil discret, mais essentiel dans beaucoup d’environnements PHP modernes. Il ne se voit pas dans le navigateur, il ne change pas votre façon d’écrire du PHP, mais il joue un rôle important dans les performances et la stabilité du serveur.
Pour un débutant, l’idée principale à retenir est simple : Apache ou Nginx reçoit la demande du visiteur, puis PHP-FPM exécute le code PHP et renvoie le résultat. Une fois ce mécanisme compris, vous comprenez déjà une grande partie du fonctionnement réel d’un serveur PHP moderne.
Et c’est justement ce genre de notion qui fait progresser. On passe du simple “mon fichier PHP s’affiche” à “je comprends comment mon serveur travaille”. Ce n’est peut-être pas aussi spectaculaire qu’une animation CSS qui brille dans tous les sens, mais pour devenir plus autonome en développement web, c’est une vraie étape.
👉 Pour aller plus loin avec les serveurs et gagner en performances, découvrez Redis.

Fondateur de l’agence Créa-troyes, affiliée France Num
Intervenant en Freelance.
Contactez-moi
