(我已阅读并采纳了这些建议这里- 它没有解决我的问题)。
我正在尝试读取 Ubuntu 20.04 LTS 上的 PHP-FPM 状态页面。这是使用打包的 PHP/PHP-FPM (7.4.3) 和 nginx (1.18.0)
在 /etc/php/7.4/fpm/pool.d/www.conf 中,我取消了该行的注释:
pm.status_path = /status
(并重新启动 php7.4-fpm)。在我的默认服务器配置中,我添加了:
location /status {
allow 10.0.0.0/8;
allow 127.0.0.1;
deny all;
# include snippets/fastcgi-php.conf;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
(并重新加载 nginx。注释掉的条目与我在其他地方使用的 fcgi 配置略有不同 - 它也不起作用)。我也尝试在try_files $uri $uri/ =404;
位置块中添加 - 行为没有变化。我从一个允许的地址连接 - 注释掉允许/拒绝行对行为没有影响:
- 访问 http://$MYSERVER/status 将返回 404
- 在文档根目录中添加名为 status 的目录会导致 403(不允许目录列表)。
- 如果我将 PHP 脚本放在 $DOCROOT/status/ 中,当我在浏览器中输入其 URL 时,该脚本就会执行 - 因此请求会被传递给 PHP-FPM。
/var/log/php7.4-fpm.log 和 /var/log/nginx/error.log 中均未报告任何内容。 access.log 仅报告 403/404 状态。
看起来 php-fpm 根本没有拦截请求,而是将其交给了 PHP。
我也尝试过使用不同的字符串作为 pm.status_path。结果相同。
我如何才能获得进一步的见解/解决这个问题?