Home  >  Article  >  Backend Development  >  不通过 web server 获取 php-fpm 运行状态

不通过 web server 获取 php-fpm 运行状态

WBOY
WBOYOriginal
2016-06-20 12:40:06923browse

php-fpm 可以配置一个 pm.status_path ,如 `/status`,然后通过 web server 访问这个地址来获取运行状态。但这样会侵入 web server 的配置,在一个 web server 后端有多个 php-fpm 的适合也不方便分别监控每一个后端的状态,为了安全,还要配置访问控制。

好在有个现成的工具 cgi-fcgi,可以把 fcgi 请求包装成 cgi 方式,这样就可以直接在命令行中调用 fastcgi。

cgi-fcgi 在 redhat/centos 中可以用 `yum install fcgi` 安装,在 ubuntu 中可以用 `apt-get install libfcgi-dev` 安装。

用以下方式就能获取 php-fpm 的状态了。

path=/statusexport REQUEST_METHOD=GETexport SCRIPT_NAME="$path"export SCRIPT_FILENAME="$path"export QUERY_STRING=''# export QUERY_STRING='full'# export QUERY_STRING='json'# export QUERY_STRING='full&xml'addr=/var/run/php-fpm.socket# addr=127.0.0.1:9000cgi-fcgi -bind -connect "$addr"

QUERY_STRING 设置为 full 会显示每一个 worker 进程的状态。添加 json、xml、html 可以以不同格式显示结果。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn