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