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

标签 php linux apache lamp

我想在 Bitnami LAMP 堆栈系统上查看 PHP-FPM 状态页面。

但是,当我尝试时,我得到一个空白页,或者一条错误消息:

Request exceeded the limit of 10 internal redirects due to probable configuration error.

那么我需要做什么才能使其正常工作?

最佳答案

这个答案有两个部分。

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

保存文件。 (在 nano 中,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 它:

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 上,我们还可以将请求限制为仅来自服务器自己的私有(private) IP 地址(而不是公开可见的 EIP)的请求。所以如果私有(private)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 锁定对于这个基本示例来说已经足够了)

尽情享受吧!如果有更好的方法可以做到这一点,请分享智慧:-)

关于php - 在 Bitnami LAMP 堆栈中设置和访问 PHP-FPM 状态页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367851/

相关文章:

javascript - 生成 JSON 数组

c - 使用管道实现异步行为

apache - hive 错误:java.io.IOException:无法创建代理提供程序类org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

Apache 目录索引显示文件,但不显示带有 mod_auth_openidc 的文件夹

Apache 负载均衡器 : direct to specific application based on URL

php - 循环遍历多种表单

javascript - 如何使用javascript更新一段php代码,例如查询

c - 内核如何在文件外部调用模块中的静态初始化和退出函数?

linux - awk 的默认字段分隔符

php - 如果字符串是变音符号,fgetcsv 会吃掉字符串的第一个字母