Rufen Sie die PHP-FPM / Statusseite manuell auf (umgehen Sie Apache)

9

Es gibt einen PHP5.3.3-Fehler , der es mir nicht ermöglicht, die / status-Seite von php-fpm über Apache2 anzuzeigen. Gibt es eine Möglichkeit, manuell auf diese Daten zuzugreifen? Ich kann die Box nicht aktualisieren (Ubuntu 10.10, php5.3.4 wird nicht unterstützt).

Ich habe versucht, die Verbindung mit der folgenden Technik herzustellen: http://inode.co.nz/testing-a-fastcgi-service , aber kein Glück.

Mikewaters
quelle

Antworten:

12

Um die / Statusseite zu laden, müssen Sie bestimmen Umgebungsvariablen gesetzt haben, nämlich: SCRIPT_NAME, SCRIPT_FILENAME, QUERY_STRING, und REQUEST_METHOD. Sie brauchen nicht DOCUMENT_ROOT(auch für eine normale Anfrage).

Unter dem richtigen Pool (es ist keine globale Einstellung) Ihres php-fpm-Konfigurationssatzes (oder Kommentars):

pm.status_path = /status

Führen Sie dann aus (ersetzen Sie PORT):

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

Beispielausgabe:

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

Hinweis: Die Ergebnisse sind poolspezifisch.

Getestet auf einem RHEL / CentOS 6-System mit PHP v5.3.9.

(Nebenerwähnung für Benutzer von CentOS - das bereitgestellte Paket cgi-fcgiist benannt fcgiund bei EPEL erhältlich.)

Abgesehen davon kann dasselbe mit Ping erreicht werden:

Set: ping.path = /ping(php-fpm config)

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

Oder für eine reguläre PHP-Datei (Sie müssen den vollständigen Pfad verwenden, QUERY_STRING ist optional):

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
quelle
ES FUNKTIONIERTE!!! Ich hatte jede Iteration von (REQUEST_METHOD und DOCUMENT_ROOT und (SCRIPT_NAME oder SCRIPT_FILENAME)) ausprobiert. Vielen Dank unglaublich.
Mikewaters