Kako omogočiti in spremljati stanje PHP-FPM v Nginxu


PHP-FPM (FastCGI Process Manager) je alternativna izvedba PHP FastCGI, ki ima številne dodatne funkcije, uporabne za spletna mesta katere koli velikosti, zlasti za spletna mesta z velikim prometom.

Običajno se uporablja v nizu LEMP (Linux Nginx MySQL/MariaDB PHP); Nginx uporablja PHP FastCGI za prikazovanje dinamične vsebine HTTP v omrežju. Uporablja se za obravnavanje milijonov zahtev PHP za stotine spletnih mest na spletnih strežnikih v internetu.

Ena od uporabnih lastnosti php-fpm je vgrajena stran stanja, ki vam lahko pomaga spremljati njeno zdravje. V tem članku bomo pokazali, kako omogočiti stran s stanjem PHP-FPM v sistemu Linux.

Kako omogočiti stran s stanjem PHP-FPM v Linuxu

Najprej odprite konfiguracijsko datoteko php-fpm in omogočite stran stanja, kot je prikazano.

$ 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

V tej datoteki poiščite in razkomentirajte spremenljivko pm.status_path = /status , kot je prikazano na posnetku zaslona.

Shranite spremembe in zapustite datoteko.

Nato preverite, ali v konfiguracijski datoteki PHP-FPM obstajajo napake, tako da zaženete spodnji ukaz.

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

Nato znova zaženite storitev PHP-FPM, da uporabite nedavne spremembe.

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

Nato uredite privzeto konfiguracijsko datoteko strežniškega bloka (navideznega gostitelja) in vanj dodajte blok lokacij. Na primer, v preskusnem sistemu je konfiguracijska datoteka privzetega strežniškega bloka /etc/nginx/conf.d/default.conf za spletno mesto test.lab.

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

Tu je lokacijski blok, ki ga je treba dodati. V tej konfiguraciji smo dovolili samo dostop do statusa procesa PHP-FPM znotraj localhosta z uporabo direktive 127.0.0.1 iz varnostnih razlogov.

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

Shranite datoteko in jo zaprite.

Nato znova zaženite strežnik Nginx, da uporabite zgornje spremembe.

$ sudo systemctl restart nginx

Zdaj odprite brskalnik in vnesite URL http://test.lab/status , da si ogledate stanje procesa PHP-FPM.

Druga možnost je, da uporabite program curl na naslednji način, kjer zastavica -L določa lokacijo strani.

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

Stran s stanjem privzeto natisne samo povzetek ali kratko stanje. Če si želite ogledati stanje za vsak proces združevanja, v niz poizvedbe podajte\"polno", na primer:

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

Izhodni format (JSON, HTML ali XML) lahko določite, kot je prikazano.

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

Spodaj so vrednosti, vrnjene v polnem stanju php-fpm, za vsak proces:

  • pid - PID procesa.
  • navedite stanje procesa (mirovanje, izvajanje itd.).
  • začetni čas - datum in čas, ko se je postopek začel.
  • začetek od - število sekund od začetka procesa.
  • zahteve - število zahtev, ki jih je proces opravil.
  • trajanje zahteve - trajanje zahtev v µs.
  • metoda zahteve - metoda zahteve (GET, POST itd.).
  • zahteva URI - zahteva URI z nizom poizvedbe.
  • vsebinska dolžina - dolžina vsebine zahteve (samo s POST).
  • uporabnik-uporabnik (PHP_AUTH_USER) (ali "-", če ni nastavljeno).
  • skript-glavni skript, imenovan (ali ‘-‘, če ni nastavljen).
  • CPU zadnje zahteve - %cpu zadnja porabljena zahteva (upoštevajte, da je vedno 0, če postopek ni v stanju mirovanja).
  • pomnilnik zadnje zahteve - največja količina pomnilnika, ki jo je porabila zadnja zahteva (vedno je 0, če postopek ni v stanju mirovanja).

To je to zaenkrat! V tem članku smo razložili, kako omogočiti stran stanja php-fpm pod spletnim strežnikom Nginx. Uporabite spodnji obrazec za povratne informacije, če z nami delite svoje misli.