不通過 web server 獲取 php-fpm 運行狀態

jopen 8年前發布 | 9K 次閱讀 Web服務器 PHP-FPM PHP開發

php-fpm 可以配置一個 pm.status_path ,如 `/status`,然后通過 web server 訪問這個地址來獲取運行狀態。但這樣會侵入 web server 的配置,在一個 web server 后端有多個 php-fpm 的適合也不方便分別監控每一個后端的狀態,為了安全,還要配置訪問控制。

好在有個現成的工具 cgi-fcgi,可以把 fcgi 請求包裝成 cgi 方式,這樣就可以直接在命令行中調用 fastcgi。

cgi-fcgi 在 redhat/centos 中可以用 `yum install fcgi` 安裝,在 ubuntu 中可以用 `apt-get install libfcgi-dev` 安裝。

用以下方式就能獲取 php-fpm 的狀態了。

path=/status

export REQUEST_METHOD=GET
export SCRIPT_NAME="$path"
export SCRIPT_FILENAME="$path"
export QUERY_STRING=''
# export QUERY_STRING='full'
# export QUERY_STRING='json'
# export QUERY_STRING='full&xml'

addr=/var/run/php-fpm.socket
# addr=127.0.0.1:9000

cgi-fcgi -bind -connect "$addr"

QUERY_STRING 設置為 full 會顯示每一個 worker 進程的狀態。添加 json、xml、html 可以以不同格式顯示結果。

來自: http://xiezhenye.com/2016/01/不通過-web-server-獲取-php-fpm-運行狀態.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!