在Ubuntu上设置PHP-FPM自动重启可以通过多种方式实现,以下是几种常见的方法:
方法一:使用systemd服务
-
创建或编辑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
方法二:使用cron任务
如果你不想使用systemd,可以使用cron任务来定期重启PHP-FPM。
-
编辑crontab文件: 打开当前用户的crontab文件:
crontab -e
-
添加重启任务: 添加一行来定期重启PHP-FPM。例如,每5分钟重启一次:
*/5 * * * * /usr/sbin/service php7.4-fpm restart
根据你的PHP版本调整命令。
-
保存并退出: 保存并退出编辑器。
方法三:使用supervisord
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自动重启,确保服务的稳定性和可靠性。