Cum să activați și să monitorizați starea PHP-FPM în Nginx


PHP-FPM (FastCGI Process Manager) este o implementare alternativă a PHP FastCGI care vine cu o serie de caracteristici suplimentare utile pentru site-uri web de orice dimensiune, în special site-urile care primesc trafic mare.

Este folosit în mod obișnuit în stiva LEMP (Linux Nginx MySQL/MariaDB PHP); Nginx folosește PHP FastCGI pentru a difuza conținut dinamic HTTP într-o rețea. Este folosit pentru a servi milioane de solicitări PHP pentru sute de site-uri web de pe servere web de pe internet.

Citiți și: Cum să activați pagina de stare NGINX

Una dintre caracteristicile utile ale php-fpm este pagina de stare încorporată, care vă poate ajuta să monitorizați starea acesteia. În acest articol, vom arăta cum să activați pagina de stare PHP-FPM pe Linux.

Cum să activați pagina de stare PHP-FPM în Linux

Mai întâi deschideți fișierul de configurare php-fpm și activați pagina de stare așa cum se arată.

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

În interiorul acestui fișier, găsiți și decomentați variabila pm.status_path=/status așa cum se arată în captura de ecran.

Salvați modificările și părăsiți fișierul.

Apoi, verificați dacă în fișierul de configurare PHP-FPM există erori, rulând comanda de mai jos.

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

Apoi reporniți serviciul PHP-FPM pentru a aplica modificările recente.

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

Apoi, editați fișierul de configurare implicit blocul de server (gazdă virtuală) și adăugați blocul de locație de mai jos în el. De exemplu, pe sistemul de testare, fișierul de configurare al blocului de server implicit este /etc/nginx/conf.d/default.conf, pentru site-ul test.lab.

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

Iată blocul de locație care trebuie adăugat. În această configurație, am permis accesul numai la starea procesului PHP-FPM din localhost folosind directiva allow 127.0.0.1 din motive de securitate.

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

Salvați fișierul și închideți-l.

Apoi reporniți serverul Nginx pentru a aplica modificările de mai sus.

sudo systemctl restart nginx

Acum deschideți un browser și introduceți adresa URL http://test.lab/status pentru a vedea starea procesului dvs. PHP-FPM.

Alternativ, utilizați programul curl după cum urmează, unde flagul -L specifică locația paginii.

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

În mod implicit, pagina de stare tipărește doar un rezumat sau o stare scurtă. Pentru a vedea starea fiecărui proces de grup, treceți „full” în șirul de interogare, de exemplu:

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

Puteți defini formatul de ieșire (JSON, HTML sau XML) așa cum se arată.

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

Mai jos sunt valorile returnate în starea completă php-fpm, pentru fiecare proces:

  • pid – PID al procesului.
  • stare starea procesului (inactiv, în curs de rulare etc.).
  • ora de începere – data și ora la care a început procesul.
  • începe de la – numărul de secunde de la începutul procesului.
  • cereri – numărul de solicitări depuse de proces.
  • durata cererii – durata în µs a solicitărilor.
  • metoda de solicitare – metoda de solicitare (GET, POST etc.).
  • URI de solicitare – URI de solicitare cu șirul de interogare.
  • lungimea conținutului – lungimea conținutului solicitării (numai cu POST).
  • utilizator – utilizator (PHP_AUTH_USER) (sau „-” dacă nu este setat).
  • script – scriptul principal numit (sau „-” dacă nu este setat).
  • ultima cerere cpu – %cpu ultima cerere consumată (rețineți că este întotdeauna 0 dacă procesul nu este în starea Inactiv).
  • memorie ultima cerere – cantitatea maximă de memorie consumată de ultima solicitare (este întotdeauna 0 dacă procesul nu este în starea Inactiv).

Atât deocamdată! În acest articol, am explicat cum să activați pagina de stare php-fpm de pe serverul web Nginx. Folosește formularul de feedback de mai jos pentru a ne împărtăși părerile tale.