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.