在Linux系统中,可以通过以下几种方法实现PHP-FPM的自动重启:
创建一个新的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配置并启动PHP-FPM服务:
sudo systemctl daemon-reload
sudo systemctl start php-fpm
要使PHP-FPM在系统启动时自动运行,请执行:
sudo systemctl enable php-fpm
首先,确保已安装Supervisor:
sudo apt-get install supervisor
然后,创建一个新的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配置并启动PHP-FPM:
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-FPM每分钟自动检查一次状态并在需要时重启。
注意:以上示例中的PHP版本为7.4,请根据实际情况修改路径和版本号。