要实时掌握Laravel应用当前正在处理的PHP请求数量,必须启用并访问PHP-FPM状态页,其返回的active processes值即真实活跃进程数;需配置pm.status_path和ping.path、Nginx反向代理,并通过curl解析JSON获取该数值。

要实时掌握Laravel应用当前正在处理的PHP请求数量,必须启用并访问PHP-FPM自带的状态页,它返回的active processes值才是最贴近真实业务负载的指标。
开启PHP-FPM状态页功能
编辑PHP-FPM池配置文件,通常为/etc/php-fpm.d/www.conf或/etc/php/8.4/fpm/pool.d/www.conf(路径依PHP版本而异)。
取消注释或新增以下两行:
pm.status_path = /status
ping.path = /ping
这一步必须做,否则Nginx转发/status请求时会直接404。注意不要写成status_path = /fpm-status之类自定义路径,php-fpm只认预设路径。
立即学习“PHP免费学习笔记(深入)”;
配置Nginx反向代理到状态页
在对应Laravel站点的server块内添加location配置:
location ~ ^/(status|ping)$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
其中/run/php-fpm/www.sock需与php-fpm中listen参数完全一致;若用TCP监听则写127.0.0.1:9000。
务必确认Nginx运行用户(如www-data或nginx)对PHP-FPM socket有读写权限,否则返回502或空白页。
验证并获取活跃进程数
第一步:重启服务使配置生效 → sudo systemctl reload php-fpm && sudo systemctl reload nginx
第二步:用curl测试接口是否通 → curl http://localhost/status?json
第三步:提取active processes字段值 → curl -s http://localhost/status?json | grep -o '"active processes":[0-9]*' | cut -d: -f2 | tr -d ' '
这个数字就是此刻真正执行着Laravel代码的子进程数,它直接受pm.max_children限制。若持续高于pm.max_children × 0.8,说明PHP-FPM已逼近吞吐瓶颈。



















