我正在运行 PHP 7.3 FPM 和 nginx。在我的池配置中,我有
pm.status_path = /fpmstatus
我已配置 nginx 以调用 php 获取该 URL。但当我访问该路径时,出现“访问被拒绝”提示。
日志显示:
对脚本“/var/www/mysite.com/fpmstatus”的访问被拒绝(参见 security.limit_extensions)
据我了解,发生的事情是 PHP 拒绝“运行该脚本”,fpmstatus
因为它没有以 结尾.php
。
但我很困惑,因为我相信它曾是以前工作正常,并且因为配置文件中用于设置状态路径的注释建议不包括.php
在名称中。我不想关闭security.limit_extensions
。而且由于/fpmstatus
路径是内部的,它肯定应该免于这些扩展?
编辑
我尝试将状态路径设置为,/fpmstatus.php
但这只会给出“未指定输入文件。”错误。似乎 fpm 没有响应配置的状态页面?
适用的 nginx 配置是:
location = /fpmstatus.php {
access_log off;
allow 127.0.0.1;
deny all;
fastcgi_param SCRIPT_FILENAME $document_root/fpmstatus.php;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $document_root/fpmstatus.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
fastcgi_pass myupstream;
}
cgi.fix_pathinfo=1
如果我投入,它就能工作/etc/php/7.3/fpm/php.ini
但是有没有办法让它在设置为 0 的情况下工作呢?