这个答案有两个部分。
首先,您需要在 PHP-FPM 配置中启用状态页面处理程序,然后需要设置 Apache 将给定 URL 路由到该处理程序。
设置 PHP-FPM:
cd /path/to/bitnami
cd php/etc
sudo nano php-fpm.conf
(或者使用您最喜欢的编辑器的任何命令。此外,如果您以当前用户身份安装了 bitnami,而不是使用 Bitnami AMI,则可能不需要 sudo,这会使该文件保留 root 所有权。)
在文件中,找到行
;pm.status_path = /status
并将其更改为:
pm.status_path = /php_fpm_status
保存文件。 (在纳米中,CTRL-X
, then Y
确认)
然后在 Apache 中设置一个处理程序:
找到您想要为状态页面提供服务的域的 Apache 配置。默认情况下,我认为该文件类似于/path/to/bitnami/apache2/conf/bitnami/bitnami.conf
但如果您有一个带有虚拟主机的实时服务器,您可能已经更改了它。
在配置中您需要添加:
<VirtualHost xxx>
...
<LocationMatch "/php_fpm_status">
SetHandler "proxy:fcgi://www-fpm"
</LocationMatch>
...
</VirtualHost>
重新启动事情:
sudo /path/to/bitnami/ctlscript.sh restart
然后在网络浏览器中打开新位置或卷曲它:
curl ip.add.re.ss/php_fpm_status
您应该看到 PHP-FPM 状态,如下所示:
pool: www
process manager: ondemand
start time: 21/May/2016:20:28:57 +0000
start since: 13
accepted conn: 1
listen queue: 0
max listen queue: 0
listen queue len: 0
idle processes: 0
active processes: 1
total processes: 1
max active processes: 1
max children reached: 0
slow requests: 0
到目前为止一切顺利,但任何人和他的恶意猴子现在都可以查看您的 FPM 状态,所以让我们通过 IP 地址锁定它。
您可以按照以下格式使用任何 IP(例如您的个人 IP)。在 Amazon EC2 上,我们还可以将请求限制为仅源自服务器自己的私有 IP 地址(而不是公开可见的 EIP)的请求。因此,如果私有 IP 是 10.0.0.1:
<VirtualHost xxx>
...
<LocationMatch "/php_fpm_status">
Require ip 10.0.0.1
SetHandler "proxy:fcgi://www-fpm"
</LocationMatch>
...
</VirtualHost>
重新启动 Apache,您应该仍然可以使用以下命令通过命令行访问状态curl 10.0.0.1/php_fpm_status
但任何对该 URL 的远程请求都会给出403 Forbidden
回复。
(您还可以使用密码保护页面或执行其他奇特的操作,但 IP 锁定对于这个基本示例来说已经足够了)
享受!如果有更好的方法来做到这一点,请分享智慧:-)