欢迎,来自IP地址为:35.171.164.77 的朋友
PHP-FPM(FastCGI Process Manager)是另一种 PHP FastCGI 的实现方式,它本身带有很多适用于各种规模网站的额外功能,在当网站访问增加时,其特性会体现的更加明显。
目前常用的 LEMP(Linux Nginx MySQL / MariaDB PHP)系统中,Nginx 通过PHP FastCGI 来生成HTTP的动态内容,这种方式被互联网众多Web服务器采用,来处理数百万个PHP请求。
PHP-FPM 有一个非常有用的内置功能,就是显示状态页,可以帮助用来监控其运行状态。
本文将演示如何在 Linux 系统启动 PHP-FPM 状态页。
要启用PHP-FPM的状态页,首先需要修改其配置文件,根据PHP的版本不同,其位置和文件名可能有些差异,但是只需要找到如下配置项即可:
;pm.status_path = /status
去掉本行开始的”;”号后,就表示启动PHP-FPM的状态页。
然后使用如下命令检查配置是否正确:
# php-fpm -t
如果命令执行完成后提示测试成功,则表示配置文件没有问题,可以启用状态页。
现在重新启动PHP-FPM,让修改过的配置文件生效:
# systemctl restart php-fpm
PHP-FPM 配置修改完成后,还需要修改Nginx的配置,让状态页面可以通过浏览器访问。
例如在默认虚拟主机服务器配置文件”default.conf”中添加一个”location”配置块,内容如下:
location ~ ^/(status|ping)$ { allow 127.0.0.1; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; include fastcgi_params; fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/var/run/php7.2-fpm.sock; }
由于安全方面的原因,首先只允许本机调用,然后设置一些Fast CGI常用的参数,最后设置Nginx同PHP-FPM的通信方式,通过固定端口或者通过sock根据实际情况任选一种即可。
配置文件修改完成后,使用如下命令重新启动Nginx:
# systemctl restart nginx
Nginx启动成功后,就可能通过浏览器访问”http://IP_OF_HOST/status”页面来查看PHP-FPM的状态页了,典型内容如下:
不仅如此,PHP-FPM的状态页还支持使用参数,以不同的数据格式显示状态信息。具体形式如下:
http://IP_OF_HOST/status?full http://IP_OF_HOST/status?json&full http://IP_OF_HOST/status?html&full http://IP_OF_HOST/status?xml&full
例如,以HTML格式显示的状态信息如下:
对于状态页中的信息,解释如下:
- pid:PHP-FPM的进程PID
- status:进程状态(空闲、运行等)
- start time:进行开始运行时间
- start since:从进程开始运行到现在经过的秒数
- requests:进程处理的请求数
- request duration:进程执行持续时间
- request method:请求类型(GET、POST等)
- request URI :请求访问的URI
- content length :请求内容长度 (仅限于POST )
- user :PHP_AUTH_USER 参数设置的用户名(如果没有设置则为”-” )
- script:调用的主脚本(如果没有设置则为”-” )
- last request cpu:最后一次请求占用CPU百分比
- last request memory :最后一次请求使用的最大内存数(单位为Byte)