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.

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

ES FUNKTIONIERTE!!! Ich hatte jede Iteration von (REQUEST_METHOD und DOCUMENT_ROOT und (SCRIPT_NAME oder SCRIPT_FILENAME)) ausprobiert. Vielen Dank unglaublich.
Mikewaters
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.