我正在尝试通过 http 调用设置和获取 php-fpm 统计信息。我知道可以使用service status命令,但我想从我的浏览器中获取它。
我正在运行 php7 和 apache,这就是我在服务器配置中所做的。
在apache方面,我用这个创建了一个虚拟主机:
<LocationMatch "/fpm-status">
Order Allow,Deny
Allow from 127.0.0.1
ProxyPass fcgi://127.0.0.1:9000
</LocationMatch>
在 php 池配置(/etc/php/7.0/fpm/pool.d/www.conf)我有这个:
[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000
listen.owner = www-data
listen.group = www-data
pm = ondemand
pm.max_children = 1000
pm.start_servers = 150
pm.min_spare_servers = 50
pm.max_spare_servers = 400
pm.max_requests = 200
pm.process_idle_timeout = 5s
pm.status_path = /fpm-status
但是在重新启动 apache 和 php-fpm 进程后,当我尝试使用 curl 时,我得到了这个输出:
admin@ip-10-3-23-78:~$curl http://localhost/fpm-status
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /fpm-status
on this server.<br />
</p>
</body></html>
admin@ip-10-3-23-78:~$
在 apache 日志文件中我有这个:
==> /var/log/apache2/error.log <==
[Thu Aug 25 13:36:10.776665 2016] [access_compat:error] [pid 12608] [client ::1:23142] AH01797: client denied by server configuration: proxy:fcgi://127.0.0.1:9000
我想知道如何真正设置它。google了很久,没有得到准确的答案,每个人都在尝试他的方式。谁负责创建状态页面(在我的例子中是fpm-status)?何时以及如何生成此页面(我猜是通过 php-fpm)?设置页面并从浏览器访问的正确方法是什么?