Linux
PHP-FPM 狀態為空
我設置了
pm.status_path = /status
選項:ubuntu:~$ cat /etc/php/7.1/fpm/pool.d/www.conf | egrep 'listen|status' listen = /run/php/php7.1-fpm.sock listen.owner = www-data listen.group = www-data pm.status_path = /status
套接字是正確的(並且站點工作):
ubuntu:~$ sudo ls -la /run/php/php7.1-fpm.sock srw-rw---- 1 www-data www-data 0 Feb 9 07:58 /run/php/php7.1-fpm.sock
但我無法收到此狀態頁面:
ubuntu:~$ SCRIPT_NAME=/status SCRIPT_FILENAME=/status \ > REQUEST_METHOD=GET sudo cgi-fcgi -bind -connect /run/php/php7.1-fpm.sock Content-type: text/html; charset=UTF-8
或者使用 nginx 配置:
server { listen 80; server_name localhost; location /status { include fastcgi_params; fastcgi_pass unix:/run/php/php7.1-fpm.sock; } }
curl http://localhost/status
為空,狀態碼為 200。
curl http://localhost/something
按預期返回錯誤 404。我應該怎麼做才能解決這種情況?要檢查什麼?
為了使PHP-FPM狀態頁面在nginx下正常工作,必須全部設置以下參數:
fastcgi_param REQUEST_METHOD $request_method; fastcgi_param QUERY_STRING $query_string; fastcgi_param SCRIPT_NAME /status; # see notes below fastcgi_param SCRIPT_FILENAME ""; # see notes below
REQUEST_METHOD
並且QUERY_STRING
由 設置include fastcgi_params
。如果您使用此配置文件,則無需再次設置這些。的值
SCRIPT_NAME
必須與pm.status_path
您的 PHP-FPM 配置中的值匹配。的值
SCRIPT_FILENAME
不重要,但必須設置。省略此參數會給您一個空響應。