Kako omogućiti i pratiti status PHP-FPM-a u Nginxu


PHP-FPM (FastCGI Process Manager) alternativna je implementacija PHP FastCGI koja dolazi s nizom dodatnih značajki korisnih za web stranice bilo koje veličine, posebno web-mjesta koja imaju veliki promet.

Obično se koristi u LEMP (Linux Nginx MySQL/MariaDB PHP) stogu; Nginx koristi PHP FastCGI za posluživanje dinamičkog HTTP sadržaja na mreži. Koristi se za posluživanje milijuna PHP zahtjeva za stotine web stranica na web poslužiteljima na internetu.

Pročitajte također: Kako omogućiti stranicu statusa NGINX-a

Jedna od korisnih značajki php-fpm je ugrađena stranica statusa, koja vam može pomoći u praćenju njegovog stanja. U ovom ćemo članku pokazati kako omogućiti stranicu statusa PHP-FPM na Linuxu.

Kako omogućiti PHP-FPM statusnu stranicu u Linuxu

Prvo otvorite konfiguracijsku datoteku php-fpm i omogućite stranicu statusa kao što 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

Unutar ove datoteke pronađite i skinite komentar s varijable pm.status_path=/status kao što je prikazano na snimci zaslona.

Spremite promjene i izađite iz datoteke.

Zatim provjerite ima li grešaka u konfiguracijskoj datoteci PHP-FPM pokretanjem donje naredbe.

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

Zatim ponovno pokrenite uslugu PHP-FPM kako biste primijenili nedavne promjene.

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

Zatim uredite konfiguracijsku datoteku zadanog bloka poslužitelja (virtualnog hosta) i dodajte blok lokacije u nastavku. Na primjer, na testnom sustavu, konfiguracijska datoteka zadanog poslužiteljskog bloka je /etc/nginx/conf.d/default.conf, za web mjesto test.lab.

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

Ovdje je blok lokacije koji treba dodati. U ovoj konfiguraciji dopustili smo samo pristup statusu procesa PHP-FPM unutar lokalnog hosta korištenjem direktive allow 127.0.0.1 iz sigurnosnih razloga.

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

Spremite datoteku i zatvorite je.

Zatim ponovno pokrenite Nginx poslužitelj kako biste primijenili gore navedene promjene.

sudo systemctl restart nginx

Sada otvorite preglednik i upišite URL http://test.lab/status da vidite status vašeg PHP-FPM procesa.

Alternativno, koristite program curl na sljedeći način, gdje zastavica -L navodi lokaciju stranice.

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

Prema zadanim postavkama stranica statusa ispisuje samo sažetak ili kratki status. Da biste vidjeli status za svaki proces skupa, proslijedite “full” u nizu upita, na primjer:

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

Možete definirati izlazni format (JSON, HTML ili XML) kao što je prikazano.

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

Ispod su vrijednosti vraćene u php-fpm punom statusu, za svaki proces:

  • pid – PID procesa.
  • Stanje statusa procesa (u mirovanju, u tijeku, itd.).
  • vrijeme početka – datum i vrijeme početka procesa.
  • pokreni od – broj sekundi od početka procesa.
  • zahtjevi – broj zahtjeva koje je proces poslužio.
  • trajanje zahtjeva – trajanje zahtjeva u µs.
  • metoda zahtjeva – metoda zahtjeva (GET, POST, itd.).
  • URI zahtjeva – URI zahtjeva s nizom upita.
  • duljina sadržaja – duljina sadržaja zahtjeva (samo s POST-om).
  • korisnik – korisnik (PHP_AUTH_USER) (ili ‘-’ ako nije postavljen).
  • skripta – pozvana glavna skripta (ili ‘-’ ako nije postavljena).
  • cpu zadnjeg zahtjeva – %cpu zadnji potrošeni zahtjev (imajte na umu da je uvijek 0 ako proces nije u stanju mirovanja).
  • memorija zadnjeg zahtjeva – maksimalna količina memorije koju je posljednji zahtjev potrošio (uvijek je 0 ako proces nije u stanju mirovanja).

To je to za sada! U ovom smo članku objasnili kako omogućiti stranicu statusa php-fpm pod Nginx web poslužiteljem. Upotrijebite obrazac za povratne informacije u nastavku kako biste s nama podijelili svoje mišljenje.