手动访问PHP-FPM的/状态页面(绕过Apache)

有一个PHP5.3.3的错误 ,不会让我通过Apache2查看php-fpm的/状态页面。 有没有办法手动访问这些数据? 我不能升级盒子(Ubuntu 10.10,不支持php5.3.4)。

我已经尝试使用这里的技术连接: http : //inode.co.nz/testing-a-fastcgi-service ,但没有运气。

为了加载/状态页面,您必须设置特定的环境variables: SCRIPT_NAMESCRIPT_FILENAMEQUERY_STRINGREQUEST_METHOD 。 你不需要DOCUMENT_ROOT (即使是正常的请求)。

在你的php-fpmconfiguration集(或取消注释)的正确池(这不是全局设置)下:

 pm.status_path = /status 

然后运行(replacePORT):

 SCRIPT_NAME=/status \ SCRIPT_FILENAME=/status \ QUERY_STRING= \ REQUEST_METHOD=GET \ cgi-fcgi -bind -connect 127.0.0.1:PORT 

示例输出:

 X-Powered-By: PHP/5.3.9 Expires: Thu, 01 Jan 1970 00:00:00 GMT Cache-Control: no-cache, no-store, must-revalidate, max-age=0 Content-Type: text/plain pool: web1 process manager: dynamic start time: 28/Jan/2012:20:49:44 -0500 start since: 5955 accepted conn: 41 listen queue: 0 max listen queue: 0 listen queue len: 128 idle processes: 1 active processes: 1 total processes: 2 max active processes: 1 max children reached: 0 

注意:结果是特定于池的。

在使用PHP v5.3.9的RHEL / CentOS 6系统上进行testing。

(对于使用CentOS的人员,提及的一点是 – 提供cgi-fcgi的软件包被命名为fcgi ,可从EPEL获得)

顺便说一句,ping可以达到同样的效果:

设置: ping.path = /ping (php-fpm config)

 SCRIPT_NAME=/ping\ SCRIPT_FILENAME=/ping\ REQUEST_METHOD=GET \ cgi-fcgi -bind -connect 127.0.0.1:PORT 

或者对于一个普通的PHP文件(您必须使用完整path,QUERY_STRING是可选的):

 SCRIPT_NAME=/test.php \ SCRIPT_FILENAME=/var/www/path/to/test.php \ QUERY_STRING= \ REQUEST_METHOD=GET \ cgi-fcgi -bind -connect 127.0.0.1:PORT