繁体   English   中英

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

[英]PHP-FPM, Monit, ping/status pages, Apache

我试图用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服务器。我该怎么做?

您需要在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

这个帖子也帮了我...得到了白色的“空白”PHP页面。

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

 fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name; 

工作就像一个魅力

我在这里发布了有关Bitnami LAMP堆栈的完整问答:

在Bitnami LAMP堆栈中设置并访问PHP-FPM状态页面

那里的细节也应该适用于您的设置,但您可能需要将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的内容,然后在为状态页面设置处理程序时复制它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM