温馨提示×

Linux中PHP-FPM如何实现自动重启

小樊
36
2025-12-06 09:16:26
栏目: 编程语言

在Linux系统中,可以通过以下几种方法实现PHP-FPM的自动重启:

  1. 使用systemd服务管理器:

创建一个新的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
  1. 使用Supervisor进程管理器:

首先,确保已安装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
  1. 使用cron定时任务:

编辑当前用户的crontab文件:

crontab -e

在文件末尾添加以下内容以每分钟检查一次PHP-FPM状态并在需要时重启:

* * * * * /usr/bin/systemctl is-active --quiet php-fpm || /usr/bin/systemctl start php-fpm

保存并关闭文件。这将使PHP-FPM每分钟自动检查一次状态并在需要时重启。

注意:以上示例中的PHP版本为7.4,请根据实际情况修改路径和版本号。

0