Weboldal keresés

A PHP-FPM állapotának engedélyezése és figyelése az Nginxben


A PHP-FPM (FastCGI Process Manager) egy alternatív PHP FastCGI megvalósítás, amely számos extra funkcióval rendelkezik, amelyek bármilyen méretű webhelyen használhatók, különösen a nagy forgalommal rendelkező webhelyeken.

Általában a LEMP (Linux Nginx MySQL/MariaDB PHP) veremben használják; Az Nginx a PHP FastCGI-t használja a dinamikus HTTP tartalom hálózaton való kiszolgálására. Több millió PHP kérés kiszolgálására használják több száz webhelyhez az interneten lévő webszervereken.

Olvassa el még: Az NGINX állapotoldal engedélyezése

A php-fpm egyik hasznos funkciója a beépített állapotoldal, amely segíthet nyomon követni az állapotát. Ebben a cikkben bemutatjuk, hogyan engedélyezheti a PHP-FPM állapotoldalt Linuxon.

A PHP-FPM állapotoldal engedélyezése Linuxban

Először nyissa meg a php-fpm konfigurációs fájlt, és engedélyezze az állapotoldalt a képen látható módon.

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

Ebben a fájlban keresse meg a pm.status_path=/status változót, és törölje a megjegyzéseket a képernyőképen látható módon.

Mentse el a változtatásokat, és lépjen ki a fájlból.

Ezután ellenőrizze, hogy a PHP-FPM konfigurációs fájl nem tartalmaz-e hibákat az alábbi parancs futtatásával.

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

Ezután indítsa újra a PHP-FPM szolgáltatást a legutóbbi módosítások alkalmazásához.

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

Ezután szerkessze az alapértelmezett szerverblokk (virtuális gazdagép) konfigurációs fájlt, és adja hozzá az alábbi helyblokkot. Például a tesztrendszeren az alapértelmezett szerverblokk konfigurációs fájlja a /etc/nginx/conf.d/default.conf, a test.lab webhelyhez.

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

Itt található a hozzáadandó helyblokk. Ebben a konfigurációban biztonsági okokból csak a PHP-FPM folyamatállapothoz engedélyeztük a hozzáférést a localhost-on belül az allow 127.0.0.1 direktíva használatával.

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

Mentse el a fájlt és zárja be.

Ezután indítsa újra az Nginx szervert a fenti módosítások alkalmazásához.

sudo systemctl restart nginx

Most nyisson meg egy böngészőt, és írja be a http://test.lab/status URL-t a PHP-FPM folyamat állapotának megtekintéséhez.

Alternatív megoldásként használja a curl programot az alábbiak szerint, ahol a -L jelző határozza meg az oldal helyét.

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

Alapértelmezés szerint az állapotoldal csak összefoglalót vagy rövid állapotot nyomtat ki. Az egyes készletfolyamatok állapotának megtekintéséhez adja meg a „full” szót a lekérdezési karakterláncban, például:

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

A képen látható módon meghatározhatja a kimeneti formátumot (JSON, HTML vagy XML).

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

Az alábbiakban láthatók a php-fpm teljes státuszban visszaadott értékek az egyes folyamatokhoz:

  • pid – a folyamat PID-je.
  • állapot folyamat állapota (tétlen, futó stb.).
  • Kezdési idő – a folyamat megkezdésének dátuma és időpontja.
  • kezdés óta – a folyamat kezdete óta eltelt másodpercek száma.
  • kérések – a folyamat által kiszolgált kérések száma.
  • kérelem időtartama – a kérések időtartama µs-ban.
  • kérési mód – kérési mód (GET, POST stb.).
  • Request URI – kérjen URI-t a lekérdezési karakterlánccal.
  • tartalom hossza – a kérelem tartalmi hossza (csak POST esetén).
  • felhasználó – felhasználó (PHP_AUTH_USER) (vagy „-”, ha nincs beállítva).
  • script – meghívott fő szkript (vagy „-”, ha nincs beállítva).
  • utolsó kérés cpu – %cpu az utolsó felhasznált kérés (vegye figyelembe, hogy mindig 0, ha a folyamat nem tétlen).
  • utolsó kérés memóriája – az utolsó kérés által felhasznált memória maximális mennyisége (ez mindig 0, ha a folyamat nem tétlen).

Egyelőre ennyi! Ebben a cikkben elmagyaráztuk, hogyan lehet engedélyezni a php-fpm állapotoldalt az Nginx webszerver alatt. Az alábbi visszajelzési űrlap segítségével ossza meg velünk gondolatait.