当前位置: 首页 > 知识库问答 >
问题:

无法使用debian6 PLESK 12上的nginx激活php fpm/status | ping-页面

王昊
2023-03-14

我无法让php fpm“/状态| ping”-页面正常工作。

一些规范:OS Debian 6.0。10普莱斯克12.0版。18更新#35,最后更新时间为2015年2月13日08:37 PM PHP版本为5.4。37(从dotdeb那里得到的)

通过PLESK 12上的升级功能thingy安装NGINX和PHP-FPM

备注:例如。com=我真正隐藏的域名。通用域名格式

*配置和文件*

***节WEB SERVER SETTTINGS激活nginx设置复选标记:智能静态文件处理否复选标记:通过nginx直接服务静态文件复选标记:通过nginx处理PHP

***附加nginx指令

location ~ ^/(status|ping)$ {
    allow all;
    fastcgi_pass unix:/var/www/vhosts/system/example.com/php-fpm.sock;
    #include /etc/nginx/fastcgi.conf;
    include /etc/nginx/fastcgi_params; # REMARK: not touched
}
location = /nginx_status {
    stub_status on;
}

*部分PHP设置*

cgi.fix_pathinfo=0

在目录/var/www/vhosts/system/example下。com/conf添加了一个自定义php。ini文件

*php。他认为:*

[example.com]
; Don't override following options, they are relied upon by Plesk internally

; Following options can be overridden
 chdir = /

request_slowlog_timeout = 5s
slowlog = /var/www/vhosts/example.com/logs/example.com/slowlog-example.com.log
; By default use on demand spawning (this requires php-fpm >= 5.3.9)
pm = dynamic
pm.max_children = 20
pm.process_idle_timeout = 10s
; Following pm.* options are used only when 'pm = dynamic'
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 500
request_terminate_timeout = 120s
rlimit_files = 131072
rlimit_core = unlimited
env[HOSTNAME] = $HOSTNAME
 env[PATH] = /usr/local/bin:/usr/bin:/bin
 env[TMP] = /tmp
 env[TMPDIR] = /tmp
 env[TEMP] = /tmp
catch_workers_output = yes
pm.status_path = /status
ping.path = /ping
ping.response = bong
security.limit_extensions = .php .html

*php.ini争斗结束*

*配置和文件结束*

到目前为止,该网站可以很好地使用这个设置,所有的php都通过nginx/phpfpm

*现在,如果我尝试查看h**p://示例,那么要解决的问题是*。com/状态

我得到的只是浏览器中的一个空白页

*$tail-f/var/log/php5 fpm。对数n 600-s 10*

16-Feb-2015 21:31:52] WARNING: [pool example.com] child 21532 said into stderr: "NOTICE: Access to the script '/status' has been denied (see security.limit_extensions)"

*/var/www/vhosts/example。com/logs/example。com/代理访问日志*

xxx.xxx.xxx.xxx - - [17/Feb/2015:16:59:11 +0100] "GET /status HTTP/1.1" 200 31 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:37.0) Gecko/20100101 Firefox/37.0"

*脚本test-php-fpm.sh:*

SCRIPT_NAME=/status \
SCRIPT_FILENAME=/status \
QUERY_STRING= \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect /var/www/vhosts/system/example.com/php-fpm.sock

脚本结束*$/测试php fpm。sh通过SSH输出:*

Access to the script '/status' has been denied (see security.limit_extensions)
Status: 403 Forbidden
Content-type: text/html

Access denied.

*输出端(空行是否有输出?**

$ curl http://example.com/status 

什么都不输出

*ls-l/var/www/vhosts/system/example。com/php-fpm。短袜*

srw-rw---- 1 root psaserv 0 Feb 15 19:58 /var/www/vhosts/system/example.com/php-fpm.sock

根据几个教程,它应该工作,但没有。

我尝试在互联网上搜索关于PHP-FPM NGINX和“空白页”或“拒绝访问”错误的不同解决方案,但没有任何帮助。

根据本指南(备注:我没有复制此处提到的文件,因为我只想使用plesk)h**p://timreeves。de/internet technologie/server-tuning-2-nginx-und-php-fpm-unter-ubuntu-12-04-lts-und-plesk-11-5/

我也做了

$ usermod -aG psacln nginx 

我不想通过TCP/IP,请保留套接字文件。谁能给我一个建议吗。

制造商/工人

共有3个答案

梁晋鹏
2023-03-14

更换nginx上的location。conf与此:

location ~ ^/(status|ping)$
{
    allow all;

    include fastcgi.conf;
    fastcgi_pass unix:/var/www/vhosts/system/example.com/php-fpm.sock;
}
齐琦
2023-03-14

这可能无法解决您的问题,但可能会使问题简化。正则表达式位置是位置敏感的,这可能会有问题。避免它们以换取一点重复将排除这一点,并允许您的配置以较少的问题进行扩展。使用“=”位置还有一个性能优势。

location = /status {
    allow all;
    fastcgi_pass unix:/var/www/vhosts/system/example.com/php-fpm.sock;
    include /etc/nginx/fastcgi_params;
}

location = /ping {
    allow all;
    fastcgi_pass unix:/var/www/vhosts/system/example.com/php-fpm.sock;
    include /etc/nginx/fastcgi_params;
}

location = /nginx_status {
    stub_status on;
}
潘安平
2023-03-14

正如错误(由php fpm)所述,访问被拒绝,因为php fpm仅限于安全性。限制_扩展(在您的例子中是.php和.html,我想这不是您想要的,您不想将.html解析为.php)。

首相。状态\路径为/status,不以结尾。php(或.html)扩展名,因此出现错误。

当我自己遇到这个问题并在谷歌上找到你的问题时,我告诉你我的解决方案是设置:

pm.status_path = /status.php

并且在nginx位置也使用它,而且它是有效的。

另一个解决方案是允许php-fpm运行任何没有扩展名限制的文件(空设置为security.limit_extensions),但我不认为这是一个好主意。

 类似资料:
  • 问题内容: 因此,我不断在多个服务器上收到此烦人的错误(它是一个警告,因此我将忽略它,但我需要该功能) 警告:curl_setopt()[function.curl- setopt]:启用safe_mode或在第56行的/home/xxx/public_html/xxx.php中设置了open_basedir时,无法激活CURLOPT_FOLLOWLOCATION 我将如何通过SSH解决此问题?

  • 我在Tomcat服务器中使用CXF公开了一个Web服务。我想在JMX中公开一些性能信息,比如由ResponseTimeFeature提出的那些信息。 我的cxf-beans.xml文件如下: 这与CXF JMX页面中的解释非常相似。 问题是,当我在[默认地址(service: jmx: rmi:///jndi/rmi://localhost:9913/jmxrmi)]使用j控制台连接时,我看不到任

  • 问题内容: 我在项目周围创建了一个virtualenv,但是当我尝试激活它时却无法。它可能只是语法或文件夹位置,但是我现在很困惑。 您可以在下面看到,我创建了virtualenv并将其称为venv。一切看起来不错,然后我尝试通过运行来激活它 我在想它可能只与我的系统路径有关,但不确定将其指向什么(我确实知道如何编辑路径)。我在python 7 / Windows操作系统上,虚拟环境2.2.x 问题

  • 监听页面激活状态 返回watchId, 若要清除监听调用取消监听时传入 var watchId = Tida.pageVisibility.watch(function(result){ ///~ visible 1为激活 0为隐藏 ///~ 移动端按Home键回到桌面js会挂起不执行,所有再次回到页面该方法会先后一起调用,注意区别该值 if(result.visib

  • 问题内容: 所以,我正在尝试以编程方式创建一个SceneView 但我收到此错误消息: 由于未捕获的异常“ NSGenericException”而终止应用程序,原因:“无法激活具有锚点的约束,并且它们没有共同的祖先。约束或其锚点是否引用了不同视图层次结构中的项目?那是非法的。 这是部分发生的。如何为该元素添加约束? 问题答案: dan是正确的,您需要先添加为子视图,然后才能锚定它。尝试这样的事情

  • 不熟悉在虚拟环境中运行Python,会弄乱Django,无法激活虚拟环境。 在过去的4个小时里,试图在本地终端/VS代码上激活虚拟环境(venv),但运气不佳。 避免了“sudo pip install virtualenv”,因为我试图避免以root用户身份安装和使用不同的目录路径等。 使用缓存的virtualenv-20.0.31-py2.py3-none-any.whl(4.9 MB)收集v