php-fpm 状态页面不显示

BaZ*_*liO 6 php-fpm

我尝试获取 php-fpm 状态页面。当我在网络浏览器中打开 /status 页面或直接打开 fcgi 时 - 它说找不到文件。

你能帮忙吗 - 如何解决这个问题。

# grep -ER "status|ping" /etc/php5/* | grep -v ":;"
/etc/php5/fpm/pool.d/www.conf:pm.status_path = /status
/etc/php5/fpm/pool.d/www.conf:ping.path = /ping
/etc/php5/fpm/pool.d/www.conf:ping.response = pong 

# SCRIPT_NAME=/status SCRIPT_FILENAME=/status QUERY_STRING=  REQUEST_METHOD=GET cgi-fcgi -bind -connect /var/run/php-fpm-www.sock
Primary script unknown
Status: 404 Not Found
Content-type: text/html

File not found.

# SCRIPT_NAME=/ping SCRIPT_FILENAME=/ping REQUEST_METHOD=GET cgi-fcgi -bind -connect /var/run/php-fpm-www.sock
Primary script unknown
Status: 404 Not Found
Content-type: text/html

File not found.
Run Code Online (Sandbox Code Playgroud)

Biz*_*ate 15

我刚刚遇到了同样的问题,我将描述我需要什么才能使它工作。您还没有分享有关 php-fpm 配置或 nginx 的许多详细信息(如果这是您用作 Web 服务器的内容)。请注意,您可能需要在命令前使用 sudo/as root 运行以下说明,以获得修改文件或重新启动服务的权限。

在 php-fpm 配置中

vi /etc/php-fpm.d/www.conf
Run Code Online (Sandbox Code Playgroud)

搜索状态路径指令并启用它

pm.status_path = /status
Run Code Online (Sandbox Code Playgroud)

然后确保nginx可以调用这个位置。在你的 nginx 站点配置中

vi /etc/nginx/conf.d/mysite.conf
Run Code Online (Sandbox Code Playgroud)

添加

location ~ ^/(status|ping)$ {
     access_log off;
     #allow 127.0.0.1;
     #allow 1.2.3.4#your-ip;
     #deny all;
     include fastcgi_params;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_pass 127.0.0.1:9000;
 }
Run Code Online (Sandbox Code Playgroud)

注意上面我已经注释掉了允许和拒绝从任何 IP 启用状态页面的指令。确保在生产中未启用此功能。现在重启 nginx 和 php-fpm

sudo service nginx restart
sudo service php-fpm restart
Run Code Online (Sandbox Code Playgroud)

从浏览器调用状态页面现在应该可以工作了


Don*_*nga 5

对于 php7.0,使用这些代码来启用状态。

在 /etc/nginx/sites-available/ 中的默认文件中

location /status {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    log_not_found off;
    }
Run Code Online (Sandbox Code Playgroud)

在 /etc/php/7.0/fpm/pool.d(位置)的 www.conf(文件)中取消注释以下行

pm.status_path = /status
Run Code Online (Sandbox Code Playgroud)

重启nginx/php7.0

sudo systemctl restart nginx
sudo systemctl restart php7.0-fpm
Run Code Online (Sandbox Code Playgroud)

现在在 Web 浏览器中,键入此地址以获取当前活动的 Web 服务器中当前运行的 php 脚本的完整详细报告,其中 php7.0 配置为可以工作。

http://yoursite.net/status?html&full
Run Code Online (Sandbox Code Playgroud)

此外,请确保对其进行密码保护以保护其免受入侵者的侵害,如此处所述

https://www.digitalocean.com/community/tutorials/how-to-set-up-password-authentication-with-nginx-on-ubuntu-14-04