Com habilitar i controlar l'estat PHP-FPM a Nginx


PHP-FPM (FastCGI Process Manager) és una implementació alternativa de PHP FastCGI que inclou una sèrie de funcions addicionals útils per a llocs web de qualsevol mida, especialment llocs que reben un gran trànsit.

S'utilitza habitualment a la pila LEMP (Linux Nginx MySQL/MariaDB PHP); Nginx utilitza PHP FastCGI per oferir contingut HTTP dinàmic a una xarxa. S'està utilitzant per atendre milions de sol·licituds PHP per a centenars de llocs web en servidors web d'Internet.

Una de les característiques útils de php-fpm és la pàgina d'estat integrada, que us pot ajudar a controlar la seva salut. En aquest article, mostrarem com habilitar la pàgina d'estat PHP-FPM a Linux.

Com habilitar la pàgina d'estat PHP-FPM a Linux

Primer obriu el fitxer de configuració php-fpm i activeu la pàgina d'estat tal com es mostra.

$ 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

Dins d'aquest fitxer, cerqueu i descomenteu la variable pm.status_path = /status tal com es mostra a la captura de pantalla.

Deseu els canvis i sortiu del fitxer.

A continuació, comproveu que el fitxer de configuració PHP-FPM hi hagi errors executant l'ordre següent.

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

A continuació, reinicieu el servei PHP-FPM per aplicar els canvis recents.

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

A continuació, editeu el fitxer de configuració del vostre bloc de servidor predeterminat (amfitrió virtual) i afegiu-hi el bloc d'ubicació que hi ha a continuació. Per exemple, al sistema de prova, el fitxer de configuració del bloc de servidor predeterminat és /etc/nginx/conf.d/default.conf, per al lloc test.lab.

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

Aquí teniu el bloc d'ubicacions que cal afegir. En aquesta configuració, només hem permès l'accés a l'estat del procés PHP-FPM dins del localhost mitjançant la directiva allow 127.0.0.1 per motius de seguretat.

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;
}

Deseu el fitxer i tanqueu-lo.

A continuació, reinicieu el servidor Nginx per aplicar els canvis anteriors.

$ sudo systemctl restart nginx

Ara obriu un navegador i escriviu l'URL http://test.lab/status per veure l'estat del vostre procés PHP-FPM.

Alternativament, utilitzeu el programa curl de la següent manera, on el senyalador -L especifica la ubicació de la pàgina.

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

Per defecte, la pàgina d'estat només imprimeix un resum o un estat breu. Per veure l'estat de cada procés d'agrupació, passeu \complet a la cadena de consulta, per exemple:

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

Podeu definir el format de sortida (JSON, HTML o XML) tal com es mostra.

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

A continuació es mostren els valors retornats a l'estat complet de php-fpm, per a cada procés:

  • pid: PID del procés.
  • estat del procés (inactiu, en execució, etc.).
  • hora d'inici: data i hora en què s'ha iniciat el procés.
  • iniciar des de: nombre de segons des que s'ha iniciat el procés.
  • sol·licituds: nombre de sol·licituds ateses pel procés.
  • durada de la sol·licitud: durada en µs de les sol·licituds.
  • Mètode de sol·licitud: mètode de sol·licitud (GET, POST, etc.).
  • Sol·licita URI: sol·licita l'URI amb la cadena de consulta.
  • longitud del contingut: durada del contingut de la sol·licitud (només amb POST).
  • usuari: usuari (PHP_AUTH_USER) (o - si no està definit).
  • script: script principal anomenat (o '-' si no s'estableix).
  • última sol·licitud de CPU: %cpu l'última sol·licitud consumida (tingueu en compte que sempre és 0 si el procés no està en estat d'inactivitat).
  • Memòria de l'última sol·licitud: quantitat màxima de memòria que s'ha consumit l'última sol·licitud (sempre és 0 si el procés no està en estat inactiu).

Això és tot de moment! En aquest article, hem explicat com habilitar la pàgina d'estat php-fpm al servidor web Nginx. Utilitzeu el formulari de comentaris a continuació per compartir els vostres pensaments amb nosaltres.