OraRails

Oracle(9i,10g)+RubyOnRails(Ver1.2.1+Apache+mongrel)の設定メモ

Mongrel 自動起動 と NameVirtualHost

2007-07-20 10:14:04 | Debian
Debian etch で railsテスト環境と本番環境を分けて管理する手法を作る。

 本番環境  /var/www http://honban.jp
テスト環境 /var/wwwtest http://test.jp

 この中に、同じ構造のディレクトリーを作成しておく。

 参考サイト)バーチャルホストの例 Apache HTTPサーバー

1. DNSで test.jp を追加する
 2. /etc/apache2/sites-available/mainsite をコピーして testsite を作る
 3. testsite の中の
   # virtualhost test.jp #
 Directory
access.log error.log の保存先を変更する

 4. /etc/apache2/sites-available/testsite を ln -s で作成する
 5. proxy_balancer のポート番号を重複しないように注意する

  これだけで、動きます。

 次に、mongrelの自動起動
参考サイト)バリケンのRuby日記

1) mongrel_cluster を組む
cd /var/www/rails1


  mongrel_rails cluster::configure -e development -p 8000 -N 3 - l /var/www/rails1/log/mongrel.log -c /var/www/rails1


mongrel_cluster.yml に 書かれる

  pidファイルを置く場所、ファイル名を変更する
 /var/run/mongrel_cluster/mongrel.pid
→ /var/wwwtest/rails1 の場合は mongrel_test1.pid
  
  cwd: /var/www/rails1
  log_file: /var/www/rails1/log/mongrel.log
  port: "8000"
  environment: development
  pid_file: /var/run/mongrel_cluster/mongrel.pid
  servers: 3

2) 自動起動を作る
 
1. cp /etc/init.d/mongrel_cluster_rails1 /etc/init.d/mongrel_cluster_test1

2.vi mongrel_cluster_test1

mkdir /etc/mongrel_cluster/rails1

#!/bin/bash
#
# Copyright (c) 2007 Bradley Taylor, bradley@railsmachine.com
#
# mongrel_cluster Startup script for Mongrel clusters.
#
# chkconfig: - 85 15
# description: mongrel_cluster manages multiple Mongrel processes for use
# behind a load balancer.
#
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/var/lib/gems/1.8/bin
CONF_DIR=/etc/mongrel_cluster/test1
PID_DIR=/var/run/mongrel_cluster
USER=mongrel
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

3. ln -s /etc/mongrel_cluster/test1/mongrel_cluster.yml /var/wwwtest/rails1/config/mongrel_cluster.yml

4. /etc/init.d/mongrel_cluster_test1 start で動くことを確認

  3) rcに組み込む

   /etc/inittab の 
  # default runlevel を確認すると id:2:initdefault:
 
  cd /etc/rc2.d/
ls -la

lrwxrwxrwx 1 root root 17 2007-07-03 10:27 S91apache2 > ../init.d/apache2
lrwxrwxrwx 1 root root 18 2007-07-02 12:35 S99rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root 19 2007-07-02 20:26 S99rmnologin -> ../init.d/rmnologin

S90でリンクを作成する

  ln -s ../init.d/mongrel_cluster_rails1 S90mongrel

再起動すると、自動的にmongrelが起動してその後 Apacheが起動する