Recherche de site Web

Comment activer et surveiller l'état PHP-FPM dans Nginx


PHP-FPM (FastCGI Process Manager) est une implémentation alternative de PHP FastCGI qui comprend un certain nombre de fonctionnalités supplémentaires utiles pour les sites Web de toute taille, en particulier les sites qui reçoivent un trafic élevé.

Il est couramment utilisé dans la pile LEMP (Linux Nginx MySQL/MariaDB PHP) ; Nginx utilise PHP FastCGI pour diffuser du contenu HTTP dynamique sur un réseau. Il est utilisé pour traiter des millions de requêtes PHP pour des centaines de sites Web sur des serveurs Web sur Internet.

Lire aussi : Comment activer la page d'état NGINX

L'une des fonctionnalités utiles de php-fpm est la page d'état intégrée, qui peut vous aider à surveiller son état de santé. Dans cet article, nous montrerons comment activer la page d'état PHP-FPM sous Linux.

Comment activer la page d'état PHP-FPM sous Linux

Ouvrez d'abord le fichier de configuration php-fpm et activez la page d'état comme indiqué.

sudo vim /etc/php-fpm.d/www.conf 
OR
sudo vim /etc/php/7.2/fpm/pool.d/www.conf	#for PHP versions 5.6, 7.0, 7.1

Dans ce fichier, recherchez et décommentez la variable pm.status_path=/status comme indiqué dans la capture d'écran.

Enregistrez les modifications et quittez le fichier.

Ensuite, vérifiez que le fichier de configuration PHP-FPM ne contient aucune erreur en exécutant la commande ci-dessous.

sudo php-fpm -t
OR
sudo php7.2-fpm -t

Redémarrez ensuite le service PHP-FPM pour appliquer les modifications récentes.

sudo systemctl restart php-fpm
OR
sudo systemctl restart php7.2-fpm

Ensuite, modifiez votre fichier de configuration de bloc de serveur (hôte virtuel) par défaut et ajoutez-y le bloc d'emplacement ci-dessous. Par exemple sur le système de test, le fichier de configuration du bloc serveur par défaut est /etc/nginx/conf.d/default.conf, pour le site test.lab.

sudo vim /etc/nginx/conf.d/default.conf 

Voici le bloc de localisation à ajouter. Dans cette configuration, nous avons uniquement autorisé l'accès à l'état du processus PHP-FPM au sein de l'hôte local en utilisant la directive allow 127.0.0.1 pour des raisons de sécurité.

location ~ ^/(status|ping)$ {
        allow 127.0.0.1;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_index index.php;
        include fastcgi_params;
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass   unix:/var/run/php7.2-fpm.sock;
}

Enregistrez le fichier et fermez-le.

Redémarrez ensuite le serveur Nginx pour appliquer les modifications ci-dessus.

sudo systemctl restart nginx

Ouvrez maintenant un navigateur et tapez l'URL http://test.lab/status pour afficher l'état de votre processus PHP-FPM.

Vous pouvez également utiliser le programme curl comme suit, où l'indicateur -L spécifie l'emplacement de la page.

curl -L http://test.lab/status

Par défaut, la page d'état imprime uniquement un résumé ou un bref état. Pour afficher l'état de chaque processus du pool, transmettez « full » dans la chaîne de requête, par exemple :

http://www.foo.bar/status?full

Vous pouvez définir le format de sortie (JSON, HTML ou XML) comme indiqué.

http://www.foo.bar/status?json&full
http://www.foo.bar/status?html&full
http://www.foo.bar/status?xml&full

Vous trouverez ci-dessous les valeurs renvoyées dans le statut complet de php-fpm, pour chaque processus :

  • pid – PID du processus.
  • état de l'état du processus (inactif, en cours d'exécution, etc.).
  • heure de début : date et heure auxquelles le processus a commencé.
  • début depuis : nombre de secondes écoulées depuis le démarrage du processus.
  • demandes : nombre de demandes traitées par le processus.
  • durée de la requête – durée en µs des requêtes.
  • méthode de requête – méthode de requête (GET, POST, etc.).
  • demander l'URI – demander l'URI avec la chaîne de requête.
  • longueur du contenu – longueur du contenu de la requête (uniquement avec POST).
  • utilisateur – utilisateur (PHP_AUTH_USER) (ou « - » s'il n'est pas défini).
  • script – script principal appelé (ou « - » s'il n'est pas défini).
  • last request cpu – %cpu la dernière requête consommée (notez qu'elle est toujours 0 si le processus n'est pas à l'état inactif).
  • Mémoire de la dernière requête – quantité maximale de mémoire consommée par la dernière requête (elle est toujours 0 si le processus n'est pas à l'état inactif).

C'est tout pour le moment! Dans cet article, nous avons expliqué comment activer la page d'état php-fpm sous le serveur Web Nginx. Utilisez le formulaire de commentaires ci-dessous pour partager vos réflexions avec nous.