IP Address:35.173.47.43


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)

发表评论

电子邮件地址不会被公开。 必填项已用*标注