HestiaCP Monit如何設定監控PHP 8.3-FPM?穩定運轉不宕機的秘密

🚀 赫斯提亞CP Monit 監控PHP 8.3-FPM 詳細教學!想讓你的伺服器穩定運行,不再因PHP 崩潰而頭痛?

本指南手把手教你設定HestiaCP Monit 監控PHP 8.3-FPM,提升網站效能,減少當機風險!

HestiaCP Monit如何設定監控PHP 8.3-FPM?穩定運轉不宕機的秘密

赫斯提亞CP 中使用 monit的 監控 PHP 8.3-FPM,可以依照以下步驟配置:

📌 1. 安裝Monit

如果你的伺服器還沒有安裝Monit,可以使用以下命令來安裝:

apt update && apt install monit -y

安裝完成後,啟動Monit 並設定開機自啟動:

systemctl enable --now monit

📌 2. 確保PHP 8.3-FPM 正常運作

首先檢查PHP 8.3-FPM 是否已正確安裝並運作:

systemctl status php8.3-fpm

如果未運行,可以嘗試啟動:

systemctl restart php8.3-fpm

然後,確認PHP-FPM 的監聽方式:

grep "^listen" /etc/php/8.3/fpm/pool.d/www.conf

如果返回:

listen = /run/php/php8.3-fpm.sock

說明PHP-FPM 正在使用Unix socket 監聽,適用於Monit 監控。

如果 www.conf 文件不存在或路徑不對,可能需要手動建立:

mkdir -p /etc/php/8.3/fpm/pool.d/
cp /etc/php/8.2/fpm/pool.d/www.conf /etc/php/8.3/fpm/pool.d/

然後編輯 /etc/php/8.3/fpm/pool.d/www.conf,確保包含:

listen = /run/php/php8.3-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

儲存後重啟PHP 8.3-FPM:

systemctl restart php8.3-fpm

📌 3. 設定Monit 監控PHP 8.3-FPM

建立Monit 監控設定檔:

nano /etc/monit/conf.d/php83

然後添加以下內容:

check process php8.3-fpm with pidfile /run/php/php8.3-fpm.pid
    start program = "/usr/sbin/service php8.3-fpm start"
    stop program  = "/usr/sbin/service php8.3-fpm stop"
    if failed unixsocket /run/php/php8.3-fpm.sock then restart
    if 5 restarts within 5 cycles then exec "/usr/bin/systemctl restart hestia"

🔹 解釋:

  • 監控 PHP 8.3-FPM 進程,檢測 PID 檔案 /run/php/php8.3-fpm.pid
  • if failed unixsocket /run/php/php8.3-fpm.sock then restart → 監測PHP-FPM 進程是否掛掉
  • 如果5 次重啟都失敗,則重啟HestiaCP

注意:不要用 protocol fastcgi,否則Monit 可能會報文法錯誤!

📌 4. 重新載入Monit 配置

儲存檔案後,重新載入Monit:

monit reload
monit status

確認PHP 8.3-FPM 已被Monit 監控:

monit summary

📌 5. 啟動Monit 並檢查狀態

確保Monit 處於運作狀態:

systemctl restart monit
monit status

✅ 6. 測試PHP 8.3-FPM 監控

你可以手動停止PHP 8.3-FPM 來測試Monit 是否能自動重新啟動:

systemctl stop php8.3-fpm

然後運行:

monit status

幾秒鐘後,PHP 8.3-FPM 應該會被Monit 自動拉起:

systemctl status php8.3-fpm

🎯 總結

確保PHP-FPM 監聽Unix socket (/run/php/php8.3-fpm.sock)
不要用 protocol fastcgi,改用 if failed unixsocket
重新載入Monit 並測試PHP-FPM 監控

這樣你的 Monit + HestiaCP + PHP 8.3-FPM 監控就可以正常運作了🚀

發表評論

您的郵箱地址不會被公開。 必填項已用 * 標註

回到頁首