4

我正在尝试使用 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 激活这些 URL。

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

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

我希望这能让我简单地去:

http://mydomain.com/status

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

4

3 回答 3

11

您需要在 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
于 2012-10-15T12:51:30.153 回答
4

这个线程也帮助了我......正在获得白色的“空白”PHP页面。

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

fastcgi_param PATH_TRANSLATED   $document_root$fastcgi_script_name;

像魅力一样工作

于 2015-02-11T16:03:47.130 回答
1

我在这里发布了与 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 的内容,然后在为您的状态页面设置处理程序时复制它。

于 2016-05-21T23:14:35.807 回答