2008年3月22日土曜日

RubyOnRailsのインストールとredmineのインストール(タイトルにひねりなしww)



ここ数ヶ月で同様のインストールを何度か経験したため、覚え書きとして残しておく。


(現在のCentOSのパッケージとgemでインストールされるモノに不整合が生じてきたため若干書き直した。)


前提:


CentOS5.0(yum updateにて5.1相当にUP済) 最小構成インストールとする。おそらくインストール後の容量は7~800MB程度。


Railsに関しては、今現在発売されている書籍やネット上の文献量等から、バージョンを1.2.xとする。


ゴール:


apache + mod_proxy_balancer + mongrel_cluster である程度のトラフィックを捌ける環境を作成する。


まず、何はともあれ開発ツール一式を入れる(ちょっと手抜きww)。



yum -y groupinstall 'Development Tools' 'Development Libraries'

次にMySQLを入れる。



yum install mysql
yum install mysql-server

rubyについてはyumを使わず1.8.6以降をソースコードからコンパイルしないと、あとで入れるmongrelが動作しない。



wget http://rubyforge.org/frs/download.php/33460/ruby-1.8.6-p114.tar.gz
tar zxvf ruby-1.8.6-p114.tar.gz
cd ruby-1.8.6-p114
./configure
make all
make install
ln -s /usr/local/bin/ruby /usr/bin/ruby # シンボリックリンクを張る

http://rubyforge.org/から最新のRubyGemをダウンロードし、インストールする。


以下はあくまで例である、実際は最新バージョンに合わせてダウンロード場所は変えること



wget http://rubyforge.org/frs/download.php/29548/rubygems-1.0.1.tgz
tar zxvf rubygems-1.0.1.tgz
cd rubygems-1.0.1
ruby setup.rb

Railsのインストール(今回はバージョンを指定する)



gem install rails -y -v 1.2.6 --include-dependencies

SQLite3とMySQLのアダプタをインストールする



gem install sqlite3-ruby
gem install mysql

mongrel(Rails用のHTTPサーバ)のインストール



gem install mongrel_cluster

MySQLの設定 (/home/mysqldb にデータベースを置く場合)



mkdir /home/mysqldb
chown mysql /home/mysqldb
chgrp mysql /home/mysqldb
rm /var/lib/mysql
ln -s /home/mysqldb mysql /var/lib
/etc/init.d/mysqld start
chkconfig mysqld on

redmine用DBの作成(今回はセキュリティ無視(^_^;)



mysql -u root -p
password:****
create database redmine;

redmine をダウンロード・解凍(/home/redmine に展開するとする)



cd /home
wget http://rubyforge.org/frs/download.php/33789/redmine-0.6.4.tar.gz
tar zxvf redmine-0.6.4.tar.gz
mv ./redmine-0.6.4 ./redmine
cd redmine

config/database.ymlファイルを開き、productionの部分のデータベース名(redmine)、ユーザー(root)、パスワード(redmineに対するパスワード)を設定。



production:


adapter: mysql


database: redmine


host: localhost


username: root


password:******



データベースの構築と初期データのインポート



rake db:migrate RAILS_ENV="production"
rake load_default_data RAILS_ENV="production"

mongrel_rails start -d -port 3000 -e production

これで一応動くはず(http://xxx.xxx.xxx:3000)。



mongrel_rails stop

で止まる。


Mongrel_clusterの自動起動ファイルを/etc/init.dにコピー



cp /usr/local/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/ ->
         resources/mongrel_cluster /etc/init.d/redmine
chmod 755 /etc/init.d/redmine

Mongrel_clusterで起動する際のコンフィグファイルを生成する。なおアプリケーションのconfigディレクトリに生成されるので外に出しておく



cd /home/redmine/
mongrel_rails cluster::configure -e production -p 3000 -a 0.0.0.0 -l
/var/log/redmine.log -P /var/run/redmine.pid -c /home/redmine
-r /home/redmine/public -N 5 --user root
mkdir /home/redmine-cluster
mv /home/redmine/config/mongrel_cluster.yml /home/redmine-cluster/

自動起動ファイルの変更



vi /etc/init.d/redmine


CONF_DIR=/home/rails/redmine-cluster


PID_DIR=/var/run


# USER=rails # ユーザはコンフィグファイルで指定する


RETVAL=0


# pathを切っておく


export RUBYLIB=/usr/local/lib/ruby/1.8/


export GEM_HOME=/usr/local/lib/ruby/gems/1.8/


(以下略



起動を確認し、自動起動をONにする。



/etc/init.d/redmine start
chkconfig dermine on

以下はapacheの設定。この設定詳細についてはここを参照のこと。


httpd.confに以下の記述を追加(redmine.hogehoge.com でRedmineを使用する)



ProxyRequests Off


<proxy *>


Order deny,allow


Allow from all


</proxy>


NameVirtualHost 12.34.56.78


<VirtualHost 12.34.56.78>


ServerName www.hogehoge.com


DocumentRoot /var/www/html


ServerAdmin root@hogehoge.com


ErrorLog /var/log/httpd/error_log


TransferLog /var/log/httpd/access_log


</VirtualHost>


<VirtualHost 12.34.56.78>


ServerName redmine.hogehoge.com


ProxyPass / balancer://scheduler/ lbmethod=byrequests


ProxyPassReverse / balancer://scheduler/


<proxy balancer://scheduler/>


BalancerMember http://127.0.0.1:3000 loadfactor=10


BalancerMember http://127.0.0.1:3001 loadfactor=10


BalancerMember http://127.0.0.1:3002 loadfactor=10


BalancerMember http://127.0.0.1:3003 loadfactor=10


BalancerMember http://127.0.0.1:3004 loadfactor=10


</proxy>


</VirtualHost>



apacheを再起動して動作を確認する。





2 件のコメント:

  1. リクエストしておきながら、お礼が遅れましてスミマセンでした><
    ありがとうございます。ありがとうございます。

    返信削除

Template Design: © 2007 Envy Inc.