首頁 > 後端開發 > php教程 > PHP 開發人員主管指南

PHP 開發人員主管指南

Patricia Arquette
發布: 2025-01-20 12:03:12
原創
992 人瀏覽過

Supervisor Guide for PHP Developers

Supervisor:用於 PHP 應用程式的強大流程控制系統

Supervisor 是管理後台進程的強大工具,是 PHP 開發人員處理長時間運行的任務、佇列工作人員和其他後台作業的必需品。 本指南詳細介紹了 Supervisor 設定、PHP 應用程式整合以及最佳效能的全面配置。

理解主管

Supervisor 擅長透過以下方式管理後台任務:

  • 自動重新啟動崩潰的進程。
  • 集中日誌記錄,更容易監控。
  • 命令列和 Web 介面控制。

這對於使用以下內容的 PHP 專案特別有利:

  • 用於非同步處理的 Laravel 隊列。
  • 持久進程,如 WebSocket 伺服器。
  • 類似 cron 作業的排程任務。

安裝主管

Ubuntu/Debian:

<code class="language-bash">sudo apt update
sudo apt install supervisor</code>
登入後複製
登入後複製

CentOS/RedHat:

<code class="language-bash">sudo yum install epel-release
sudo yum install supervisor</code>
登入後複製
登入後複製

安裝後,啟動並啟用Supervisor:

<code class="language-bash">sudo systemctl start supervisord
sudo systemctl enable supervisord</code>
登入後複製
登入後複製

主管配置

Supervisor 利用設定檔(通常位於 /etc/supervisor/conf.d/ 中)來管理各個程式。

基本設定範例:

使用以下內容建立/etc/supervisor/conf.d/my_php_worker.conf

<code class="language-ini">[program:my_php_worker]
command=php /path/to/worker.php
autostart=true
autorestart=true
stderr_logfile=/var/log/my_php_worker.err.log
stdout_logfile=/var/log/my_php_worker.out.log</code>
登入後複製

--tries=3 選項(在 command 指令內)將失敗前的重新啟動嘗試限制為 3 次。

應用程式配置:

<code class="language-bash">sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start my_php_worker:*</code>
登入後複製

詳細設定選項

以下是 Supervisor 設定選項的詳細細分:

  1. command:要執行的指令。 例:command=php /path/to/worker.php

  2. autostart:使用Supervisor自動啟動程式。值:true(預設)、false。例:autostart=true

  3. autorestart:失敗時自動重新啟動。值:truefalseunexpected。例:autorestart=unexpected

  4. startsecs:進程被視為啟動之前的最短運行時間(秒)。預設值:1。例:startsecs=5

  5. startretries:失敗前的最大重啟嘗試次數。預設值:3。例:startretries=5

  6. exitcodes:可接受的退出代碼,防止重新啟動。預設值:0,2。例:exitcodes=0,1

  7. stopwaitsecs:強制終止之前等待正常關閉的時間(秒)。預設值:10。例:stopwaitsecs=20

  8. redirect_stderr:將標準誤差重新導向到標準輸出。值:truefalse(預設)。例:redirect_stderr=true

  9. stdout_logfile / stderr_logfile:標準輸出和錯誤的日誌檔案路徑。例:stdout_logfile=/var/log/my_program.out.log

  10. stdout_logfile_maxbytes / stderr_logfile_maxbytes:輪轉前的最大日誌檔案大小。預設值:50MB。例:stdout_logfile_maxbytes=10MB

  11. stdout_logfile_backups / stderr_logfile_backups:要保留的輪替日誌檔數。預設值:10。例:stdout_logfile_backups=3

  12. user:運作程式的系統使用者。例:user=www-data

  13. environment:環境變數。例:environment=APP_ENV="production",DB_HOST="localhost"

  14. priority:開始順序(較低的值首先開始)。預設值:999。例:priority=100

  15. directory:工作目錄。例:directory=/path/to/your/app

  16. stopasgroup:向進程及其子程序發送停止訊號。值:truefalse(預設)。例:stopasgroup=true

  17. killasgroup:在stopwaitsecs之後強制終止進程及其子進程。值:truefalse(預設)。例:killasgroup=true

PHP 特定用例

  1. Laravel 佇列: 管理 queue:work 指令以實現可靠的作業處理。

    <code class="language-bash">sudo apt update
    sudo apt install supervisor</code>
    登入後複製
    登入後複製
  2. 計畫任務:取代 cron 以實現更強大的計畫腳本執行。

    <code class="language-bash">sudo yum install epel-release
    sudo yum install supervisor</code>
    登入後複製
    登入後複製
  3. 長時間運行的腳本:管理持久腳本,如 WebSocket 伺服器。

    <code class="language-bash">sudo systemctl start supervisord
    sudo systemctl enable supervisord</code>
    登入後複製
    登入後複製

自動化 Supervisor 啟動

確保 Supervisor 在系統啟動時啟動:

  1. 啟用 Supervisor 服務:sudo systemctl enable supervisord

  2. 啟動服務(如果需要):sudo systemctl start supervisord

最佳實踐

  • 使用描述性程式名稱。
  • 使用 stdout_logfile_maxbytesstdout_logfile_backups 設定日誌輪替。
  • 利用environment指令來管理變數。

結論

Supervisor 是 PHP 開發人員管理後台程序的必備工具。本指南全面介紹了其安裝、配置和實際應用,確保您的 PHP 專案可靠、高效的任務管理。

以上是PHP 開發人員主管指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板