在linux环境中运行php项目时,php-fpm作为php的fastcgi进程管理器,是连接web服务器和php解释器的核心组件,掌握它的开启和关闭方法是运维和开发人员的必备技能。不同linux发行版以及不同的php-fpm安装方式,对应的启停操作存在一定差异,下面分场景详细说明。

基于系统包管理器安装的php-fpm启停方法
如果是通过yum、apt等系统包管理器安装的php-fpm,系统会自动生成对应的服务管理配置,可直接使用系统服务命令操作。
使用systemctl命令操作(适用于centos7+、ubuntu16.04+等使用systemd的发行版)
systemctl是主流linux发行版默认的服务管理工具,操作php-fpm的命令如下:
- 开启php-fpm服务:
systemctl start php-fpm,如果是多个php版本共存,服务名可能是php74-fpm、php80-fpm这类带版本号的形式,需要根据实际安装情况调整 - 关闭php-fpm服务:
systemctl stop php-fpm - 重启php-fpm服务:
systemctl restart php-fpm - 查看php-fpm运行状态:
systemctl status php-fpm
如果需要设置php-fpm开机自启动,执行以下命令即可:
# 设置开机自启动 systemctl enable php-fpm # 关闭开机自启动 systemctl disable php-fpm
使用service命令操作(适用于centos6、ubuntu14.04等使用sysvinit的发行版)
老版本linux系统使用service命令管理服务,对应的php-fpm操作命令如下:
# 开启php-fpm service php-fpm start # 关闭php-fpm service php-fpm stop # 重启php-fpm service php-fpm restart # 查看运行状态 service php-fpm status
手动编译安装的php-fpm启停方法
如果是从源码手动编译安装的php,没有自动注册系统服务,需要直接调用php-fpm的可执行文件进行操作,首先需要找到php-fpm的安装路径,通常默认安装在/usr/local/php目录下。
通过php-fpm可执行文件操作
php-fpm的可执行文件一般在php安装目录的sbin文件夹下,配置文件默认在etc文件夹下,操作示例如下:
# 假设php安装在/usr/local/php目录 # 开启php-fpm,指定配置文件路径 /usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm.conf # 关闭php-fpm,先找到进程pid ps aux | grep php-fpm # 找到master进程的pid后,发送终止信号 kill -INT 主进程pid # 平滑重启php-fpm,不中断现有请求 kill -USR2 主进程pid
也可以先查看php-fpm.conf配置文件中指定的pid文件位置,直接读取pid进行操作,避免手动查找进程:
# 查看php-fpm.conf中pid配置,假设配置为pid=/usr/local/php/var/run/php-fpm.pid # 关闭php-fpm kill -INT $(cat /usr/local/php/var/run/php-fpm.pid) # 平滑重启 kill -USR2 $(cat /usr/local/php/var/run/php-fpm.pid)
手动注册系统服务(可选)
为了方便管理,手动编译安装的php-fpm也可以注册为系统服务,以systemd为例,创建服务配置文件:
# 创建服务文件 vim /usr/lib/systemd/system/php-fpm.service
文件内容如下,需要根据实际安装路径调整:
[Unit] Description=PHP FastCGI Process Manager After=syslog.target network.target [Service] Type=simple PIDFile=/usr/local/php/var/run/php-fpm.pid ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf ExecReload=/bin/kill -USR2 $MAINPID ExecStop=/bin/kill -INT $MAINPID [Install] WantedBy=multi-user.target
保存后执行systemctl daemon-reload重新加载服务配置,之后就可以用systemctl命令管理php-fpm了。
操作注意事项
- 执行启停命令时需要root权限,普通用户需要在命令前加sudo
- 开启php-fpm前可以先用
php-fpm -t命令检查配置文件是否有语法错误,避免启动失败 - 关闭php-fpm时优先使用平滑重启或终止信号,避免直接kill -9强制杀进程导致请求中断
- 如果修改了php-fpm的配置,需要重启服务才能生效,平滑重启可以在不中断服务的情况下加载新配置
php-fpmlinuxsystemctlservicephp_fpm_conf修改时间:2026-06-17 19:03:36