redmineをMongrelで動かす
こちらを参考にredmineをMongrelで動かしてみた。ほとんどそのままの手順。
Mongrelの導入
後でいろいろ使えそうで、サービス登録も簡単らしいmongrel_clusterを使用する。
# gem install mongrel_cluster Bulk updating Gem source index for: http://gems.rubyforge.org Install required dependency gem_plugin? [Yn] Install required dependency mongrel? [Yn] Select which gem to install for your platform (i386-linux) 1. mongrel 1.0.3 (ruby) 2. mongrel 1.0.2 (ruby) 3. mongrel 1.0.2 (mswin32) 4. Skip this gem 5. Cancel installation >1 Install required dependency cgi_multipart_eof_fix? [Yn] Install required dependency daemons? [Yn] Install required dependency fastthread? [Yn]
Mongrelを実行するユーザとグループを作成
railsadmin:www-data でMongrelデーモンを動作せさる。
redmine本体は/home/railsadmin/配下に設置する。
# groupadd www-data # useradd -g www-data railsadmin # chmod 770 /home/railsadmin/ # su - railsadmin % wget http://rubyforge.org/frs/download.php/22783/redmine-0.5.1.tar.gz % tar xvfz redmine-0.5.1.tar.gz % mv redmine-0.5.1 redmine
redmine自体の設定は割愛。
基本的にはDBの設定だけで動く。
pidを書き込むディレクトリを作成
# mkdir /var/run/mongrel # chown :www-data /var/run/mongrel/ # chmod 775 /var/run/mongrel/
redmine起動用の設定ファイルへのリンク作成
現時点ではリンク先は存在しないが先に作成しておく。
# mkdir /etc/mongrel_cluster # mkdir /etc/mongrel_cluster/redmine # ln -s /home/railsadmin/redmine/config/mongrel_cluster.yml /etc/mongrel_cluster/redmine/
起動用の設定ファイルを作成
# su - railsadmin % cd redmine/ % mongrel_rails cluster::configure -e production -p 4000 -a 0.0.0.0 \ -l /home/railsadmin/redmine/log/mongrel.log -P /var/run/mongrel/redmine.pid \ -c /home/railsadmin/redmine -N 1 --user railsadmin --group www-data
こんな感じに出力される。
config/mongrel_cluster.yml
--- user: railsadmin cwd: /home/railsadmin/redmine log_file: /home/railsadmin/redmine/log/mongrel.log port: "4000" environment: production group: www-data address: 0.0.0.0 pid_file: /var/run/mongrel/redmine.pid servers: 1
起動スクリプトを作成
サンプルファイルをコピーして編集する。
# cp /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.3/resources/mongrel_cluster \ /etc/init.d/mongrel_cluster_redmine
/etc/init.d/mongrel_cluster_redmine
(全文)
#!/bin/bash CONF_DIR=/etc/mongrel_cluster/redmine PID_DIR=/var/run/mongrel_cluster USER=root RETVAL=0 # Gracefully exit if the controller is missing. which mongrel_cluster_ctl >/dev/null || exit 0 # Go no further if config directory is missing. [ -d "$CONF_DIR" ] || exit 0 case "$1" in start) # Create pid directory mkdir -p $PID_DIR chown $USER:$USER $PID_DIR mongrel_cluster_ctl start -c $CONF_DIR RETVAL=$? ;; stop) mongrel_cluster_ctl stop -c $CONF_DIR RETVAL=$? ;; restart) mongrel_cluster_ctl restart -c $CONF_DIR RETVAL=$? ;; status) mongrel_cluster_ctl status -c $CONF_DIR RETVAL=$? ;; *) echo "Usage: mongrel_cluster {start|stop|restart|status}" exit 1 ;; esac exit $RETVAL
実行権限つける。
# chmod 755 /etc/init.d/mongrel_cluster_redmine
常時起動するように設定
# chkconfig mongrel_cluster_redmine on