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.