在Ubuntu上设置PHP-FPM自动重启可以通过多种方式实现,以下是几种常见的方法:
创建或编辑PHP-FPM服务文件:
打开终端并编辑PHP-FPM的服务文件。通常这个文件位于/etc/systemd/system/php-fpm.service
。
sudo nano /etc/systemd/system/php-fpm.service
如果文件不存在,可以创建一个:
sudo cp /lib/systemd/system/php7.4-fpm.service /etc/systemd/system/php-fpm.service
sudo nano /etc/systemd/system/php-fpm.service
根据你的PHP版本调整服务文件中的路径和配置。
修改服务文件: 确保服务文件中有以下内容:
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/run/php/php7.4-fpm.pid
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
根据你的PHP版本调整路径和配置。
重新加载systemd配置: 保存并关闭文件后,重新加载systemd配置以识别新的服务文件:
sudo systemctl daemon-reload
启动并启用PHP-FPM服务: 启动PHP-FPM服务并设置为开机自启:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
设置自动重启:
你可以使用Restart
选项来设置自动重启策略。例如,设置为在失败时自动重启:
[Service]
Restart=on-failure
或者设置为每隔一段时间自动重启:
[Service]
Restart=always
RestartSec=30
如果你不想使用systemd,可以使用cron任务来定期重启PHP-FPM。
编辑crontab文件: 打开当前用户的crontab文件:
crontab -e
添加重启任务: 添加一行来定期重启PHP-FPM。例如,每5分钟重启一次:
*/5 * * * * /usr/sbin/service php7.4-fpm restart
根据你的PHP版本调整命令。
保存并退出: 保存并退出编辑器。
Supervisord是一个进程控制系统,可以用来管理多个进程,包括PHP-FPM。
安装supervisord:
sudo apt-get install supervisor
配置supervisord: 编辑supervisord的配置文件:
sudo nano /etc/supervisor/conf.d/php-fpm.conf
添加以下内容:
[program:php-fpm]
command=/usr/sbin/php-fpm7.4 --nodaemonize --fpm-config /etc/php/7.4/fpm/php-fpm.conf
autostart=true
autorestart=true
stderr_logfile=/var/log/php-fpm.err.log
stdout_logfile=/var/log/php-fpm.out.log
根据你的PHP版本调整命令和路径。
重新加载supervisord配置: 保存并关闭文件后,重新加载supervisord配置:
sudo supervisorctl reread
sudo supervisorctl update
启动PHP-FPM: 使用supervisord启动PHP-FPM:
sudo supervisorctl start php-fpm
通过以上方法,你可以在Ubuntu上设置PHP-FPM自动重启,确保服务的稳定性和可靠性。