ここ数ヶ月で同様のインストールを何度か経験したため、覚え書きとして残しておく。
(現在の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を再起動して動作を確認する。
リクエストしておきながら、お礼が遅れましてスミマセンでした><
返信削除ありがとうございます。ありがとうございます。
つ【god.rubyforge.org】
返信削除