PHP-FPM(FastCGI 进程管理器)是另一种PHP FastCGI实现,它具有许多额外功能,适用于任何规模的网站,特别是接收高流量的网站。
它常用于LEMP ( Linux Nginx MySQL/MariaDB PHP ) 堆栈;Nginx使用PHP FastCGI在网络上提供动态HTTP内容。它被用来为互联网上的 Web 服务器上的数百个网站提供数百万个PHP请求。
另请阅读:如何启用 NGINX 状态页面
php-fpm的有用功能之一是内置状态页面,它可以帮助您监控其运行状况。在本文中,我们将展示如何在 Linux 上启用PHP-FPM状态页面。
如何在 Linux 中启用 PHP-FPM 状态页面
首先打开php-fpm配置文件并启用如图所示的状态页面。
$ sudo vim /etc/php-fpm.d/www.conf 或者 $ sudo vim /etc/php/7.2/fpm/pool.d/www.conf #适用于 PHP 版本 5.6、7.0、7.1
在此文件中,找到并取消注释变量,pm.status_path = /status
如屏幕截图所示。
![](https://www.alaica.com/wp-content/uploads/linux-372.png)
保存更改并退出文件。
接下来,通过运行以下命令检查PHP-FPM配置文件是否有任何错误。
$ sudo php-fpm -t 或者 $ sudo php7.2-fpm -t
![](https://www.alaica.com/wp-content/uploads/linux-373.png)
然后重新启动PHP-FPM服务以应用最近的更改。
$ sudo systemctl 重新启动 php-fpm 或者 $ sudo systemctl 重新启动 php7.2-fpm
接下来,编辑默认服务器块(虚拟主机)配置文件并在其中添加下面的位置块。例如,在测试系统上,站点test.lab的默认服务器块的配置文件是/etc/nginx/conf.d/default.conf。
$ sudo vim /etc/nginx/conf.d/default.conf
这是要添加的位置块。在此配置中,出于安全原因,我们仅允许使用指令allow 127.0.0.1访问本地主机内的PHP-FPM进程状态。
位置 ~ ^/(状态|ping)$ { 允许 127.0.0.1; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index索引.php; 包括 fastcgi_params; #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/php7.2-fpm.sock; }
保存文件并关闭它。
然后重新启动Nginx服务器以应用上述更改。
$ sudo systemctl 重新启动 nginx
现在打开浏览器并输入 URLhttp://test.lab/status
以查看 PHP-FPM 进程状态。
![](https://www.alaica.com/wp-content/uploads/linux-374.png)
或者,按如下方式使用curl 程序-L
,其中标志指定页面的位置。
$curl -L http://test.lab/status
默认情况下,状态页仅打印摘要或简短状态。要查看每个池进程的状态,请在查询字符串中传递“full”,例如:
http://www.foo.bar/status?full
您可以定义输出格式(JSON、HTML 或 XML),如图所示。
http://www.foo.bar/status?json&full http://www.foo.bar/status?html&full http://www.foo.bar/status?xml&full
以下是每个进程的php-fpm完整状态中返回的值:
- pid——进程的PID。
- state进程状态(空闲、运行等)。
- 开始时间– 流程开始的日期和时间。
- 开始时间– 自进程启动以来的秒数。
- requests – 进程已处理的请求数。
- 请求持续时间– 请求的持续时间(以微秒为单位)。
- 请求方法——请求方法(GET、POST 等)。
- 请求 URI – 带有查询字符串的请求 URI。
- 内容长度– 请求的内容长度(仅适用于 POST)。
- user – 用户 (PHP_AUTH_USER)(如果未设置则为“-”)。
- script – 调用的主脚本(如果未设置则为“-”)。
- 最后一个请求 cpu – %cpu 最后一个请求消耗的资源(请注意,如果进程不处于空闲状态,则它始终为 0)。
- 上次请求内存– 上次请求消耗的最大内存量(如果进程不处于空闲状态,则始终为 0)。
现在就这样了!在本文中,我们解释了如何在 Nginx Web 服务器下启用php-fpm状态页面。使用下面的反馈表与我们分享您的想法。