setup: Redmine + Thin + Arch Linux
- Redmineはsvnなりから入手。設定はRedmine.JPでも見ればよいかと。
- sqlite3使うなら。
- pacman -S sqlite3 // 3.7.10
- gem install sqlite3 // 1.3.5
- Thinもgemる。
- gem install thin // 1.3.1
動作テストはredmineを置いた場所で、
thin -e production -p 45678 start
とか。
実際にこれで運用するつもりならデーモン化したりアレコレというわけで参考程度に起動スクリプトは下記な感じでどうぞ。
/etc/rc.d/thin-redmine とか作って、
#!/bin/bash . /etc/rc.conf . /etc/rc.d/functions name=redmine prog="/usr/bin/thin -e production -p 45678 -c /srv/http/redmine -d -u http -g http" case "$1" in start) stat_busy "Starting $name daemon" eval $prog start &>/dev/null \ && { add_daemon $name; stat_done; } \ || { stat_fail; exit 1; } ;; stop) stat_busy "Stopping $name daemon" eval $prog stop &>/dev/null \ && { rm_daemon $name; stat_done; } \ || { stat_fail; exit 1; } ;; restart) $0 stop sleep 2 $0 start ;; *) echo "usage: $0 {start|stop|restart}" exit 1 ;; esac
chmod +x しといて、 rc.d start thin-redmine とかなんとか試して問題が無ければ /etc/rc.conf の DAEMONS=() に入れるなりもすると良いでしょう。
thinのオプションについては thin --help で必要量の情報は出てきました。-dはデーモンモード、-cでディレクトリを指示、-uはユーザー、-gはグループ。
ちなみに、-Pでpidファイルのパスを指定もできると書いてあったけれど、同時にデフォルトではtmp/pids/thin.pidとか書いてあったので上記スクリプトではそのパスからcatでPIDを拾う事に・x・
実際にはこれにnginxなりApacheなりからリバースプロクシを設定して運用、かな。
<追記>
- rc.dスクリプトでstopをPIDからkillする状態で初稿しましたが、thinのオプションで普通にstopできる&PIDとか直接触れずとも問題無いので、スクリプトを修正しました。
- PIDファイルのテストコマンドも要らないのでスクリプトを修正しました。