发布于2026-07-16 阅读(0)
扫一扫,手机访问
在Linux系统中,要实现PHP-FPM的自动重启,其实有不少现成的方案。下面介绍三种最常用的方法,覆盖了从systemd到Supervisor再到cron的典型场景。无论你是运维新手还是老手,这套组合拳基本能应对大部分需求。

首先创建一个新的systemd服务文件:
sudo nano /etc/systemd/system/php-fpm.service
将以下内容粘贴进去(注意根据实际情况修改User、Group和ExecStart等参数):
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=simple
User=www-data
Group=www-data
ExecStart=/usr/sbin/php-fpm7.4 --nodaemonize --fpm-config /etc/php/7.4/fpm/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存退出后,执行以下命令重新加载systemd配置并启动服务:
sudo systemctl daemon-reload
sudo systemctl start php-fpm
如果想让PHP-FPM开机自启动,再加上一句:
sudo systemctl enable php-fpm
先确保已安装Supervisor:
sudo apt-get install supervisor
然后创建配置文件:
sudo nano /etc/supervisor/conf.d/php-fpm.conf
填入以下内容(command参数请根据实际路径和版本调整):
[program:php-fpm]
process_name=%(program_name)s_%(process_num)02d
command=/usr/sbin/php-fpm7.4 --nodaemonize --fpm-config /etc/php/7.4/fpm/php-fpm.conf
autostart=true
autorestart=true
numprocs=5
startsecs=0
stopwaitsecs=0
user=www-data
redirect_stderr=true
stdout_logfile=/var/log/supervisor/php-fpm.log
保存后重新加载Supervisor配置并启动:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start php-fpm
编辑当前用户的crontab:
crontab -e
在文件末尾添加一行,实现每分钟检查一次PHP-FPM状态,若未运行则启动:
* * * * * /usr/bin/systemctl is-active --quiet php-fpm || /usr/bin/systemctl start php-fpm
保存退出即可。这种方法特别适合那些不想引入额外守护进程的场景,但缺点也很明显——重启会有最多一分钟的延迟。
需要特别提醒的是:以上示例中的PHP版本均为7.4,实际使用时请根据你的PHP版本和安装路径进行调整(比如PHP 8.0、8.1等)。另外,如果系统中PHP-FPM的二进制路径或配置文件位置有差异,记得同步修改。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8