Wyszukiwanie w witrynie

Jak włączyć i monitorować status PHP-FPM w Nginx


PHP-FPM (FastCGI Process Manager) to alternatywna implementacja PHP FastCGI, która zawiera szereg dodatkowych funkcji przydatnych w witrynach dowolnej wielkości, zwłaszcza witryny generujące duży ruch.

Jest powszechnie używany w stosie LEMP (Linux Nginx MySQL/MariaDB PHP); Nginx używa PHP FastCGI do udostępniania dynamicznych treści HTTP w sieci. Jest używany do obsługi milionów żądań PHP dla setek witryn internetowych na serwerach internetowych w Internecie.

Przeczytaj także: Jak włączyć stronę stanu NGINX

Jedną z przydatnych funkcji php-fpm jest wbudowana strona stanu, która może pomóc Ci monitorować jego stan. W tym artykule pokażemy, jak włączyć stronę stanu PHP-FPM w systemie Linux.

Jak włączyć stronę stanu PHP-FPM w systemie Linux

Najpierw otwórz plik konfiguracyjny php-fpm i włącz stronę stanu, jak pokazano.

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

Wewnątrz tego pliku znajdź i odkomentuj zmienną pm.status_path=/status, jak pokazano na zrzucie ekranu.

Zapisz zmiany i zamknij plik.

Następnie sprawdź, czy plik konfiguracyjny PHP-FPM nie zawiera błędów, uruchamiając poniższe polecenie.

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

Następnie uruchom ponownie usługę PHP-FPM, aby zastosować ostatnie zmiany.

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

Następnie edytuj domyślny plik konfiguracyjny bloku serwera (host wirtualny) i dodaj poniżej blok lokalizacji. Na przykład w systemie testowym domyślny plik konfiguracyjny bloku serwera to /etc/nginx/conf.d/default.conf, dla witryny test.lab.

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

Oto blok lokalizacji, który należy dodać. W tej konfiguracji zezwoliliśmy tylko na dostęp do stanu procesu PHP-FPM w obrębie hosta lokalnego przy użyciu dyrektywy zezwól na 127.0.0.1 ze względów bezpieczeństwa.

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

Zapisz plik i zamknij go.

Następnie zrestartuj serwer Nginx, aby zastosować powyższe zmiany.

sudo systemctl restart nginx

Teraz otwórz przeglądarkę i wpisz adres URL http://test.lab/status, aby wyświetlić status procesu PHP-FPM.

Alternatywnie użyj programu curl w następujący sposób, gdzie flaga -L określa położenie strony.

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

Domyślnie na stronie statusu drukowane jest jedynie podsumowanie lub krótki status. Aby wyświetlić status każdego procesu puli, w ciągu zapytania przekaż „full”, na przykład:

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

Można zdefiniować format wyjściowy (JSON, HTML lub XML), jak pokazano.

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

Poniżej znajdują się wartości zwracane w stanie pełnym php-fpm dla każdego procesu:

  • pid – PID procesu.
  • stan procesu (bezczynny, uruchomiony itp.).
  • godzina rozpoczęcia – data i godzina rozpoczęcia procesu.
  • rozpocznij od – liczba sekund od rozpoczęcia procesu.
  • żądania – liczba żądań obsłużonych przez proces.
  • czas trwania żądania – czas trwania żądania w µs.
  • metoda żądania – metoda żądania (GET, POST itp.).
  • żądanie URI – żądanie URI z ciągiem zapytania.
  • długość treści – długość treści żądania (tylko z POST).
  • użytkownik – użytkownik (PHP_AUTH_USER) (lub „-”, jeśli nie ustawiono).
  • skrypt – wywoływany główny skrypt (lub „-”, jeśli nie jest ustawiony).
  • ostatnie żądanie procesora – % procesora wykorzystane podczas ostatniego żądania (pamiętaj, że zawsze wynosi 0, jeśli proces nie jest w stanie bezczynności).
  • pamięć ostatniego żądania – maksymalna ilość pamięci zużyta przez ostatnie żądanie (zawsze wynosi 0, jeśli proces nie jest w stanie bezczynności).

To wszystko na teraz! W tym artykule wyjaśniliśmy, jak włączyć stronę stanu php-fpm na serwerze internetowym Nginx. Skorzystaj z poniższego formularza opinii, aby podzielić się z nami swoimi przemyśleniami.