Jak povolit a sledovat stav PHP-FPM v Nginx
PHP-FPM (FastCGI Process Manager) je alternativní implementace PHP FastCGI, která přichází s řadou dalších funkcí užitečných pro webové stránky jakékoli velikosti, zejména weby s vysokou návštěvností.
Běžně se používá v zásobníku LEMP (Linux Nginx MySQL/MariaDB PHP); Nginx používá PHP FastCGI pro poskytování dynamického obsahu HTTP v síti. Používá se ke zpracování milionů požadavků PHP pro stovky webových stránek na webových serverech na internetu.
Přečtěte si také: Jak povolit stavovou stránku NGINX
Jednou z užitečných funkcí php-fpm je vestavěná stavová stránka, která vám může pomoci sledovat její stav. V tomto článku si ukážeme, jak povolit stavovou stránku PHP-FPM v systému Linux.
Jak povolit stránku stavu PHP-FPM v systému Linux
Nejprve otevřete konfigurační soubor php-fpm a povolte stavovou stránku podle obrázku.
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
Uvnitř tohoto souboru najděte a odkomentujte proměnnou pm.status_path=/status
, jak je znázorněno na snímku obrazovky.
Uložte změny a ukončete soubor.
Dále zkontrolujte, zda konfigurační soubor PHP-FPM neobsahuje chyby spuštěním příkazu níže.
sudo php-fpm -t
OR
sudo php7.2-fpm -t
Poté restartujte službu PHP-FPM, abyste použili poslední změny.
sudo systemctl restart php-fpm
OR
sudo systemctl restart php7.2-fpm
Dále upravte svůj výchozí konfigurační soubor bloku serveru (virtuálního hostitele) a přidejte do něj blok umístění níže. Například v testovacím systému je výchozí konfigurační soubor bloku serveru /etc/nginx/conf.d/default.conf pro web test.lab.
sudo vim /etc/nginx/conf.d/default.conf
Zde je blok umístění, který má být přidán. V této konfiguraci jsme z bezpečnostních důvodů povolili přístup ke stavu procesu PHP-FPM pouze v rámci localhost pomocí direktivy allow 127.0.0.1.
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;
}
Uložte soubor a zavřete jej.
Poté restartujte server Nginx, abyste použili výše uvedené změny.
sudo systemctl restart nginx
Nyní otevřete prohlížeč a zadejte URL http://test.lab/status
pro zobrazení stavu vašeho procesu PHP-FPM.
Případně použijte program curl následovně, kde příznak -L
určuje umístění stránky.
curl -L http://test.lab/status
Ve výchozím nastavení se na stavové stránce vytiskne pouze souhrn nebo krátký stav. Chcete-li zobrazit stav každého procesu fondu, předejte v řetězci dotazu „plný“, například:
http://www.foo.bar/status?full
Můžete definovat výstupní formát (JSON, HTML nebo XML), jak je znázorněno.
http://www.foo.bar/status?json&full
http://www.foo.bar/status?html&full
http://www.foo.bar/status?xml&full
Níže jsou uvedeny hodnoty vrácené v úplném stavu php-fpm pro každý proces:
- pid – PID procesu.
- stav stav procesu (nečinný, běžící atd.).
- čas zahájení – datum a čas zahájení procesu.
- start since – počet sekund od zahájení procesu.
- požadavky – počet požadavků, které proces vyřídil.
- trvání požadavku – trvání požadavků v µs.
- metoda požadavku – metoda požadavku (GET, POST atd.).
- identifikátor URI požadavku – identifikátor URI požadavku s řetězcem dotazu.
- délka obsahu – délka obsahu požadavku (pouze u POST).
- user – uživatel (PHP_AUTH_USER) (nebo „-“, pokud není nastaveno).
- script – hlavní skript nazvaný (nebo „-“, pokud není nastaven).
- Cpu posledního požadavku – % cpu posledního spotřebovaného požadavku (všimněte si, že pokud proces není ve stavu nečinnosti, je to vždy 0).
- paměť posledního požadavku – maximální množství paměti spotřebované posledním požadavkem (vždy je to 0, pokud proces není ve stavu nečinnosti).
To je prozatím vše! V tomto článku jsme vysvětlili, jak povolit stavovou stránku php-fpm na webovém serveru Nginx. Pomocí formuláře pro zpětnou vazbu níže se s námi podělte o své myšlenky.