我想在Bitnami LAMP堆栈系统上看到PHP-FPM状态页面。
然而,当我尝试时,我得到一个空白页面,或者说错误:
Request exceeded the limit of 10 internal redirects due to probable configuration error.
那么我需要做些什么才能让它发挥作用?
答案 0 :(得分:8)
这个答案有两个部分。
首先,您需要在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
,然后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锁定已经足够了)
享受!如果有更好的方法可以做到这一点,请分享智慧: - )