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.