Amon2をSupervisor+Starmanで動かす

最終更新時間:2011年11月23日 17時05分07秒

 Amon2が、Apache+mod_perlではどうにもうまく動いてくれない(ホームディレクトリがわからないらしく、要所をフルパス指定にするコードの修正が必要)。Apacheの設定が悪いんだろうが、何が悪いんだかよくわからない。
 そこで、わからないついでに、全く違う動作環境を試してみることにした。
 それは、以下のページで解説されている Supervisor および Starman を用いた環境である。

  1. supervisordとclelrydの設定
  2. FreeBSDで Supervisor を使う

 なお、サーバーのOSはUbuntu11.10である。

 まず、easy_installでSupervisorをインストールするために、あらかじめpythonのsetuptoolsを入れておく。

apt-get install python-setuptools

 その後にSupervisorのインストール。

easy_install -U supervisor

 Supervisor自体の設定は、上記1のページそのまま。起動スクリプトも同じものを使った。
 ちなみに、自動起動の設定はこちらのページを参照のこと。

 次にServer::StarterとStarmanのインストール。これらはcpanmで簡単だが、私の環境では、追加でNet::Server::SS::PreForkのインストールも必要だった。

cpanm Server::Starter
cpanm Starman
cpanm Net::Server::SS::PreFork

 最後に、動作させるAmon2のサイトについての設定。これは上記2のページを参考にした。
 以下の例は、Amon2のファイルの場所が、/home/mechanist/public_html/psgi/MyBBS である場合。

/home/mechanist/public_html/psgi/MyBBS/run

#!/bin/sh

exec /usr/local/bin/start_server --port 9002 \
--interval 2 \
-- /usr/local/bin/plackup \
-Ilib \
-s Starman \
/home/mechanist/public_html/psgi/MyBBS/app.psgi \
--workers 10

/etc/supervisord/mybbs.conf

[program:mybbs]
user=www-data
command=/home/mechanist/public_html/psgi/MyBBS/run
directory=/home/mechanist/public_html/psgi/MyBBS
stdout_logfile=/var/log/supervisord/mybbs.log
stderr_logfile=/var/log/supervisord/mybbs_error.log
numprocs = 1
stdout_logfile_maxbytes = 10MB
stderr_logfile_maxbytes = 10MB
stdout_logfile_backups = 5
stderr_logfile_backups = 5
autostart = true
autorestart = true
startsecs = 5
priority = 998

 この環境では、Amon2のサイトを、ムダにフルパス指定の修正を行うことなく、動かすことができた。めでたしめでたし。