在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自動重啟,確保服務的穩定性和可靠性。