在Linux服务器环境中,确认PHP是否正常运行是日常运维和故障排查的常见需求,不同部署模式下PHP的运行形态存在差异,对应的检查方法也有所不同。

通过进程查看PHP是否运行
PHP如果以php-fpm模式运行,会在系统中产生对应的进程,我们可以通过进程查看命令来确认。
查看php-fpm进程
执行以下命令可以过滤出php-fpm相关的进程:
ps -ef | grep php-fpm | grep -v grep
如果输出中包含master进程和多个worker进程,说明php-fpm正在运行。如果仅输出grep自身的进程,说明php-fpm未启动。
查看通用php进程
如果是通过其他方式运行的PHP脚本,也可以使用更宽泛的进程过滤:
ps -ef | grep php | grep -v grep
通过端口监听查看PHP是否运行
php-fpm默认会监听9000端口,我们可以通过端口检测来确认服务状态。
使用netstat命令检查
netstat -tlnp | grep 9000
如果输出中存在监听9000端口的记录,且进程是php-fpm,说明PHP服务正常运行。
使用ss命令检查
部分系统默认没有netstat工具,可以使用ss命令替代:
ss -tlnp | grep 9000
通过系统服务查看PHP状态
如果PHP是通过系统服务管理器部署的,可以直接查询服务状态。
systemd系统检查
执行以下命令查看php-fpm服务状态:
systemctl status php-fpm
输出中如果显示active (running)字样,说明服务正常运行,若显示inactive则说明服务未启动。
sysvinit系统检查
老版本Linux系统可以使用service命令查询:
service php-fpm status
通过PHP脚本验证运行状态
我们可以通过执行简单的PHP脚本来确认PHP解释器是否可用。
命令行执行脚本验证
执行以下命令直接运行PHP代码:
php -r "echo 'PHP is running';"
如果输出PHP is running,说明PHP命令行解释器正常工作。
Web环境验证
如果PHP是配合Web服务器运行的,可以创建测试文件test.php,内容如下:
<?php phpinfo(); ?>
将该文件放到Web服务器的根目录下,通过浏览器访问该文件,如果能正常显示PHP的配置信息,说明Web环境下的PHP运行正常。
不同部署模式的检查差异
如果PHP是以mod_php模式集成在Apache中运行,那么不会出现独立的php-fpm进程,此时可以通过检查Apache进程,或者访问上述test.php文件来确认PHP是否正常。如果是通过CGI模式运行,也可以通过进程过滤或者脚本执行的方式来验证状态。