hiratake55 の作業メモ

R, Javascript, Python, Linux and Hadoop

CentOS 5.2 に Ruby on Rails をインストールする

$ で始まる行は一般ユーザ、# で始まる行は root。

1. yum で Ruby と関連のパッケージをインストール

$ su -
# yum install ruby ruby-devel ruby-docs ruby-irb ruby-libs ruby-mode ruby-rdoc ruby-tcltk

2. RubyGems をインストール

RubyGems (Perl の CPAN, PHP の PEAR に相当するもの) をインストール。

# wget http://rubyforge.org/frs/download.php/57643/rubygems-1.3.4.tgz
# tar -xvzf rubygems-1.3.4.tgz
# cd rubygems
# ruby setup.rb
# cd ..
# rm rubygems-1.3.4.tgz
# rm -rf rubygems-1.3.4

3. Rails をインストール

# gem install rails

4. Rails のディレクトリを作ってみる

$ cd
$ mkdir rails
$ cd rails
$ rails myapp
$ cd myapp
$ tree
.
|-- README
|-- Rakefile
|-- app
|   |-- controllers
|   |   `-- application_controller.rb
|   |-- helpers
|   |   `-- application_helper.rb
|   |-- models
|   `-- views
|       `-- layouts

ディレクトリに Rails のファイル群が構築されている。

5. サーバを起動

$ ruby script/server

Ruby 標準の Web サーバ WEBrick が起動するので、Web ブラウザから http://(サーバのIPアドレス):3000/ にアクセスして確認。

このような画面が出たら OK。コンソールから Ctrl+C で停止。

6. Web サーバを Passenger (通称: mod_rails) に変更

TCP 80番で呼び出すため、mod_rails+Apache を使う。mongrel を使う場合はスキップ。

mod_rails をインストール
# yum install gcc-c++  ## gcc-c++パッケージが必要
# gem install passenger
# passenger-install-apache2-module
passenger.conf を作成

passenger-install-apache2-module を実行した後に表示される項目をコピペ。

# vi /etc/httpd/conf.d/passenger.conf

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4
PassengerRuby /usr/bin/ruby
バーチャルホストに追加
# vi /etc/httpd/conf/httpd.conf

## コメントアウトしてバーチャルホストを有効に
NameVirtualHost *:80

## 下記を追加
<VirtualHost *:80>
    DocumentRoot /home/username/rails/myapp/public
    ServerName rails.domain.com
</VirtualHost>
Apacheを再起動
# service httpd restart
ブラウザからアクセス

有効なアプリがない場合は下のようなエラー画面や、Rails のホームが表示されるけど、とりあえずこれでOK。

7. mod_rails ではなく、mongrel を使う場合はこちら。

mongrel をインストール
# gem install mongrel
$ cd ~/rails/myapp/
$ mongrel_rails start
Apache に設定する

バーチャルホストのリバースプロキシとして設定する。

# vi /etc/httpd/conf/httpd.conf

##コメントアウトして、mod_proxy を読み込む
LoadModule proxy_module modules/mod_proxy.so

## コメントアウトしてバーチャルホストを有効に
NameVirtualHost *:80

## 下記を追加
<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName rails.domain.com
    <IfModule mod_proxy.c>
       ProxyPass / http://localhost:3000/
       ProxyPassReverse / http://localhost:3000/
    </Ifmodule>
</VirtualHost>
Apacheを再起動して、mongrel を起動させる
# service httpd restart
$ ruby script/server

mongrel が起動するので、Web ブラウザから 80 番ポートでアクセスできるか確認する。サーバの停止は Ctrl+C。