ホームページ >バックエンド開発 >PHPチュートリアル >PHP 開発者向けスーパーバイザー ガイド
スーパーバイザー: PHP アプリケーション向けの堅牢なプロセス制御システム
Supervisor は、バックグラウンド プロセスを管理するための強力なツールであり、長時間実行されるタスク、キュー ワーカー、およびその他のバックグラウンド ジョブを処理する PHP 開発者にとっては必需品です。 このガイドでは、スーパーバイザーのセットアップ、PHP アプリケーションの統合、最適なパフォーマンスのための包括的な構成について詳しく説明します。
スーパーバイザーは、次のようなバックグラウンド タスクの管理に優れています。
以下を採用する PHP プロジェクトにとって特に有益です。
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>
インストール後、スーパーバイザーをアクティブ化して有効にします:
<code class="language-bash">sudo systemctl start supervisord sudo systemctl enable supervisord</code>
スーパーバイザーは、構成ファイル (通常は /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>
スーパーバイザー設定オプションの詳細な内訳は次のとおりです。
command
: 実行するコマンド。 例: command=php /path/to/worker.php
autostart
: スーパーバイザーを使用してプログラムを自動的に開始します。値: true
(デフォルト)、false
。例: autostart=true
autorestart
: 失敗時に自動的に再起動します。値: true
、false
、unexpected
。例: autorestart=unexpected
startsecs
: プロセスが開始されたとみなされるまでの最小実行時間 (秒)。デフォルト: 1。例: startsecs=5
startretries
: 失敗するまでの再起動の最大試行回数。デフォルト: 3。例: startretries=5
exitcodes
: 再起動を妨げる許容可能な終了コード。デフォルト: 0、2。例: exitcodes=0,1
stopwaitsecs
: 強制終了する前に正常なシャットダウンを待機する時間 (秒)。デフォルト: 10。例: stopwaitsecs=20
redirect_stderr
: 標準エラーを標準出力にリダイレクトします。値: true
、false
(デフォルト)。例: redirect_stderr=true
stdout_logfile
/ stderr_logfile
: 標準出力およびエラーのログ ファイル パス。例: stdout_logfile=/var/log/my_program.out.log
stdout_logfile_maxbytes
/ stderr_logfile_maxbytes
: ローテーション前の最大ログ ファイル サイズ。デフォルト: 50MB。例: stdout_logfile_maxbytes=10MB
stdout_logfile_backups
/ stderr_logfile_backups
: 保持するローテーションされたログ ファイルの数。デフォルト: 10。例: stdout_logfile_backups=3
user
: プログラムを実行するシステム ユーザー。例: user=www-data
environment
: 環境変数。例: environment=APP_ENV="production",DB_HOST="localhost"
priority
: 開始順序 (低い値が最初に開始されます)。デフォルト: 999。例: priority=100
directory
: 作業ディレクトリ。例: directory=/path/to/your/app
stopasgroup
: プロセスとその子プロセスに停止シグナルを送信します。値: true
、false
(デフォルト)。例: stopasgroup=true
killasgroup
: stopwaitsecs
の後にプロセスとその子プロセスを強制的に強制終了します。値: true
、false
(デフォルト)。例: killasgroup=true
Laravel キュー: 信頼性の高いジョブ処理のために queue:work
コマンドを管理します。
<code class="language-bash">sudo apt update sudo apt install supervisor</code>
スケジュールされたタスク: より堅牢なスケジュールされたスクリプト実行のために cron を置き換えます。
<code class="language-bash">sudo yum install epel-release sudo yum install supervisor</code>
長時間実行スクリプト: WebSocket サーバーなどの永続的なスクリプトを管理します。
<code class="language-bash">sudo systemctl start supervisord sudo systemctl enable supervisord</code>
システム起動時にスーパーバイザーが起動することを確認します:
スーパーバイザー サービスを有効にする: sudo systemctl enable supervisord
サービスを開始します (必要な場合): sudo systemctl start supervisord
stdout_logfile_maxbytes
と stdout_logfile_backups
を使用してログ ローテーションを構成します。environment
ディレクティブを使用して変数を管理します。Supervisor は、バックグラウンド プロセスを管理する PHP 開発者にとって不可欠なツールです。このガイドでは、インストール、構成、実際のアプリケーションについて包括的に紹介し、PHP プロジェクトの信頼性が高く効率的なタスク管理を保証します。
以上がPHP 開発者向けスーパーバイザー ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。