PHP-FPM,Monit,ping / status页面,Apache

时间:2011-12-14 19:08:20

标签: linux apache monit php

我正在尝试用Monit监视我的FPM守护进程,我假设由于重新生成和PID改变,以下不是最好的技术?

check process php5-fpm with pidfile "/var/run/php5-fpm.pid"
    start = "/etc/init.d/php5-fpm start"
    stop = "/etc/init.d/php5-fpm stop"
    if failed port 80 protocol http then restart

从我可以收集的内容来看,更好的方法是使用FPM ping URL,但我无法使用Apache激活它们。

除了设置FPM池选项之外,Apache / PHP-FPM究竟需要做什么:

pm.status_path = / status ping.path = / ping

我希望能让我简单地去:

http://mydomain.com/status

拉起状态页面。当我转到此URL时,我收到404错误。我假设我需要某种处理程序来重定向/ status和/ ping到我的本地主机端口9000上的FPM服务器。我该怎么办?

3 个答案:

答案 0 :(得分:9)

您需要在apache(000-default ???)中设置默认vhost来处理/ status和/ ping。我使用nginx(道歉,但根据需要进行调整),我的default文件具有以下位置指令:

location ~ ^/(status|ping)$ {
    include fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
    allow 127.0.0.1;
    deny all;
}

然后允许我curl localhost/status

您还需要更改您的php-fpm conf(我的是www.conf)并取消注释:

pm.status_path = /status
ping.path = /ping

答案 1 :(得分:3)

这个帖子也帮助了我......白色"空白" PHP页面。

在我的 / etc / nginx / fastcgi_params 中 添加了这个



fastcgi_param PATH_TRANSLATED   $document_root$fastcgi_script_name;




像魅力一样工作

答案 2 :(得分:1)

我在这里发布了一个关于Bitnami LAMP堆栈的完整Q& A:

Set up and access the PHP-FPM status page in Bitnami LAMP stack

那里的细节也应该适用于您的设置,但您可能需要将Apache配置更改为:

<LocationMatch "/php_fpm_status">
  SetHandler php5-fpm
</LocationMatch>

在基本术语中,处理程序应该匹配您首先用于将文件发送到PHP-FPM的任何名称。使用bitnami时,相关的conf设置如下:

<IfDefine USE_PHP_FPM>
  <Proxy "unix:/path/to/bitnami/php/var/run/www.sock|fcgi://www-fpm" timeout=300>
  </Proxy>
  <FilesMatch \.php$>
    SetHandler "proxy:fcgi://www-fpm"
  </FilesMatch>
</IfDefine>

所以,对于这个设置,我们使用:

<LocationMatch "/php_fpm_status">
  SetHandler "proxy:fcgi://www-fpm"
</LocationMatch>

但是对于任何其他安装,请查找您通常用于PHP-FPM的内容,然后在为状态页面设置处理程序时复制该内容。