April 20, 2013

FuelPHP x RatchetをSupervisorで永続的に起動する

2013/05/05 追記
supervisor.confの設定例に"environment"を追加して、"FUEL_ENV=production"を設定するようにしました。

--

Ratchetドキュメント http://socketo.me/docs/deploy にSupervisorの記載があります。

SupervisorはPython製のプロセス管理ツールです。Supervisorを用いることで、プロセスを永続化させられます。

先日作成したRatchetパッケージを、Supervisorで永続的に起動させてみます。
https://github.com/mp-php/fuel-packages-ratchet

以下、手順です。

1. Supervisorのインストール
$ sudo apt-get install python-setuptools
$ sudo easy_install supervisor
2. 設定ファイルの雛形作成
* 以下、コマンドはFuelPHPのプロジェクトルートで実行しているものとします。
echo_supervisord_conf > fuel/packages/ratchet/supervisor.conf
3. FuelPHP x Ratchet用の設定例
* 2で作成した雛形に以下を追記
[program:ratchet]
environment             = FUEL_ENV=production
command                 = php oil r ratchet:ws [fuel/appにあるクラス名]
numprocs                = 1
autostart               = true
autorestart             = true
user                    = root
stdout_logfile          = fuel/app/logs/supervisor/info.log
stdout_logfile_maxbytes = 1MB
stderr_logfile          = fuel/app/logs/supervisor/error.log
stderr_logfile_maxbytes = 1MB
4. 起動
$ mkdir -p fuel/app/logs/supervisor # ログ用ディレクトリを作成
$ sudo supervisord -c fuel/packages/ratchet/supervisor.conf
5. その他、コマンド例
# ステータスの確認
$ sudo supervisorctl -c fuel/packages/ratchet/supervisor.conf status

# ストップ
$ sudo supervisorctl -c fuel/packages/ratchet/supervisor.conf stop all

# スタート
$ sudo supervisorctl -c fuel/packages/ratchet/supervisor.conf start all

# リスタート
$ sudo supervisorctl -c fuel/packages/ratchet/supervisor.conf restart all

これでやっと準備が整ったと思う。。。

--

関連:
FuelPHPでWebSocketを扱うパッケージを作りました
http://madroom-project.blogspot.jp/2013/04/fuelphpwebsocket.html

No comments:

Post a Comment