在linux系统中运行php相关的web服务时,php-fpm的启动状态直接影响php脚本的解析效果,我们可以通过多种方式快速判断php-fpm是否已经启动。

通过systemctl命令判断
大部分现代linux发行版都使用systemd作为服务管理工具,我们可以通过systemctl命令直接查看php-fpm的服务状态。首先需要确认php-fpm的服务名称,通常默认是php-fpm,部分系统会根据php版本命名,比如php7.4-fpm、php8.1-fpm等。
执行以下命令查看服务状态:
# 查看php-fpm服务状态,根据实际服务名调整 systemctl status php-fpm
如果输出结果中包含active (running)字样,说明php-fpm已经正常启动。如果显示inactive (dead)则表示服务未启动,failed则表示服务启动失败。
如果不确定具体的服务名称,可以先列出所有包含php-fpm的服务:
# 列出所有php-fpm相关服务 systemctl list-unit-files | grep php-fpm
通过进程查看判断
我们可以通过ps命令查看系统中是否存在php-fpm的进程,以此判断服务是否启动。php-fpm启动后会生成多个进程,包括主进程和子进程。
执行以下命令过滤php-fpm进程:
# 查看php-fpm进程 ps aux | grep php-fpm
如果输出结果中除了grep自身的进程外,还有多个包含php-fpm: master process和php-fpm: pool www的进程,说明php-fpm已经启动。如果只有grep相关的进程输出,说明php-fpm没有运行。
通过端口监听判断
php-fpm默认会监听9000端口(如果是sock方式则监听对应的sock文件),我们可以通过netstat或者ss命令查看端口监听情况。
执行以下命令查看9000端口的监听状态:
# 查看9000端口监听情况,需要安装net-tools工具 netstat -tlnp | grep 9000 # 或者使用ss命令,大部分系统默认自带 ss -tlnp | grep 9000
如果输出结果中显示LISTEN状态,并且有php-fpm进程占用该端口,说明php-fpm已经启动。如果使用的是sock方式通信,可以查看对应的sock文件是否存在:
# 查看php-fpm的sock文件,路径根据实际配置调整 ls -l /run/php/php-fpm.sock
如果sock文件存在且权限正常,也说明php-fpm已经启动。
通过php-fpm命令判断
php-fpm本身也提供了状态查看的参数,我们可以通过执行php-fpm的命令来判断服务状态。
执行以下命令查看php-fpm的配置和运行状态:
# 查看php-fpm配置是否生效,同时可以判断是否安装 php-fpm -t # 查看php-fpm的版本和运行信息 php-fpm -v
如果执行php-fpm -t没有报错,且输出配置测试成功的信息,同时结合进程查看的结果,就可以确认php-fpm已经正常启动。
常见问题排查
如果以上方法都显示php-fpm没有启动,可以尝试手动启动服务:
# 启动php-fpm服务 systemctl start php-fpm # 设置开机自启 systemctl enable php-fpm
如果启动失败,可以查看php-fpm的错误日志,日志路径通常在/var/log/php-fpm/目录下,根据日志提示排查配置错误或者端口占用等问题。