Php-Fpm

手動訪問 PHP-FPM 的 /status 頁面(繞過 Apache)

  • November 22, 2021

有一個PHP5.3.3 錯誤不允許我通過 Apache2 查看 php-fpm 的 /status 頁面。有沒有辦法手動訪問這些數據?我無法升級盒子(Ubuntu 10.10,不支持 php5.3.4)。

我嘗試使用此處的技術進行連接:http: //inode.co.nz/testing-a-fastcgi-service,但沒有運氣。

為了載入 /status 頁面,您必須設置某些環境變數,特別是:SCRIPT_NAMESCRIPT_FILENAMEQUERY_STRINGREQUEST_METHOD。您不需要DOCUMENT_ROOT(即使是正常請求)。

在您的 php-fpm 配置集(或取消註釋)的正確池(它不是全域設置)下:

pm.status_path = /status

然後執行(替換 PORT):

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

樣本輸出:

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

注意:結果是特定於池的。

在使用 PHP v5.3.9 的 RHEL/CentOS 6 系統上測試。

(對於使用 CentOS 的人來說,附帶提一下 - 提供的軟體包cgi-fcgi是命名的fcgi,並且可以從 EPEL 獲得)

順便說一句,ping 也可以達到同樣的效果:

設置:ping.path = /ping(php-fpm 配置)

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

或者對於正常 PHP 文件(您必須使用完整路徑,QUERY_STRING 是可選的):

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

引用自:https://serverfault.com/questions/354668