Uzyskaj dostęp do strony PHP-FPM / statusu ręcznie (pomiń Apache)

9

Jest błąd PHP5.3.3 , który nie pozwala mi przeglądać strony statusu / php-fpm przez Apache2. Czy istnieje sposób ręcznego dostępu do tych danych? Nie mogę zaktualizować urządzenia (Ubuntu 10.10, php5.3.4 nie jest obsługiwane).

Próbowałem połączyć się przy użyciu tej techniki tutaj: http://inode.co.nz/testing-a-fastcgi-service , ale bez powodzenia.

mikewaters
źródło

Odpowiedzi:

12

W celu załadowania strony stanu /, musi mieć ustawione pewne zmienne środowiskowe, w szczególności: SCRIPT_NAME, SCRIPT_FILENAME, QUERY_STRING, i REQUEST_METHOD. Nie potrzebujesz DOCUMENT_ROOT(nawet w przypadku zwykłego żądania).

Pod poprawną pulą (nie jest to ustawienie globalne) zestawu konfiguracyjnego php-fpm (lub odkomentuj):

pm.status_path = /status

Następnie uruchom (zastępując PORT):

SCRIPT_NAME=/status \
SCRIPT_FILENAME=/status \
QUERY_STRING= \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect 127.0.0.1:PORT

Przykładowe dane wyjściowe:

X-Powered-By: PHP/5.3.9
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate, max-age=0
Content-Type: text/plain

pool:                 web1
process manager:      dynamic
start time:           28/Jan/2012:20:49:44 -0500
start since:          5955
accepted conn:        41
listen queue:         0
max listen queue:     0
listen queue len:     128
idle processes:       1
active processes:     1
total processes:      2
max active processes: 1
max children reached: 0

Uwaga: wyniki są specyficzne dla puli.

Testowane na systemie RHEL / CentOS 6 z PHP v5.3.9.

(Dodatkowa uwaga dla osób korzystających z CentOS - pakiet, który udostępnia, cgi-fcgijest nazwany fcgii dostępny z EPEL)

Nawiasem mówiąc, to samo można osiągnąć za pomocą polecenia ping:

Zestaw: ping.path = /ping(konfiguracja php-fpm)

SCRIPT_NAME=/ping\
SCRIPT_FILENAME=/ping\
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect 127.0.0.1:PORT

Lub w przypadku zwykłego pliku PHP (musisz użyć pełnej ścieżki, QUERY_STRING jest opcjonalny):

SCRIPT_NAME=/test.php \
SCRIPT_FILENAME=/var/www/path/to/test.php \
QUERY_STRING= \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect 127.0.0.1:PORT
cyberx86
źródło
ZADZIAŁAŁO!!! Próbowałem każdej iteracji (REQUEST_METHOD i DOCUMENT_ROOT i (SCRIPT_NAME lub SCRIPT_FILENAME)). Dziękuję bardzo.
mikewaters