尝试访问 PHP fpm 状态页面时被拒绝

尝试访问 PHP fpm 状态页面时被拒绝

我正在运行 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 的情况下工作呢?

相关内容