Vyhledávání na webu

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.