我正在尝试用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
我希望能让我简单地去:
拉起状态页面。当我转到此URL时,我收到404错误。我假设我需要某种处理程序来重定向/ status和/ ping到我的本地主机端口9000上的FPM服务器。我该怎么办?
答案 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的内容,然后在为状态页面设置处理程序时复制该内容。