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 に相当するもの) をインストール。
- 最新版はここから→ http://rubyforge.org/frs/?group_id=126
# 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
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>