Railsアプリケーションの実行環境を構築する

環境
CentOS 5.5
Apache 2.2.3
Phusion Passenger 2.2.15
MySQL 5.0.77
Ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
Rails 2.3.8
RubyGems 1.3.7

Rubyのインストール

RubyRubyGemsソースコードから最新版をインストールするので、yumでインストールされているRubyは削除しておきます。

# yum remove ruby


zlib-develはRubyGemsをビルドするとき、openssl-develはRailsを実行するときに必要になるので、あらかじめインストールしておきます。

# yum -y install gcc zlib-devel openssl-devel


もしSQLiteを使うなら、sqlitesqlite-develもインストールしておきます。

# yum -y install sqlite sqlite-devel


Rubyソースコードからインストールします。最新版は本家のサイトからダウンロードできます。

# cd /usr/local/src
ruby-1.8.7-p249.tar.gzはこの記事を書いた時点での最新版なので、適宜変更してください。
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gz
# tar zxvf ruby-1.8.7-p302.tar.gz
# cd ruby-1.8.7-p302
# ./configure
# make
# make test
# make install


デフォルトでは/usr/local/bin/rubyにインストールされます。必要であれば/usr/bin/rubyシンボリックリンクを作成します。

# ln -s /usr/local/bin/ruby /usr/bin/ruby
# ruby -v


RubyGemsソースコードからインストールします。最新版はRubyForgeからダウンロードできます。

# cd /usr/local/src
rubygems-1.3.7.tgzはこの記事を書いた時点での最新版なので、適宜変更してください。
# wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
# tar zxvf rubygems-1.3.7.tgz
# cd rubygems-1.3.7
# ruby setup.rb
# gem -v


念のため、RubyGemsのシステムアップデートを行っておきます。

# gem update --system

Railsのインストール

Railsをインストールします。

# gem install rails


デフォルトではRails 3がインストールされます。2.x系を使いたいときは、バージョンを指定してインストールします。

# gem install rails --version=2.3.8

Phusion Passengerのインストール

Phusion Passengerをインストールします。

# gem install passenger


Apacheモジュールのビルドとインストールを行います。作業は対話的に進んでいきます。最初は

  • Apache 2 development headers
  • Apache Portable Runtime (APR) development headers
  • Apache Portable Runtime Utility (APU) development headers

の3つが足りないと言われました。

# passenger-install-apache2-module
Checking for required software...

* GNU C++ compiler... not found
* Ruby development headers... found
* OpenSSL support for Ruby... found
* RubyGems... found
* Rake... found at /usr/local/bin/rake
* rack... found
* Apache 2... found at /usr/sbin/httpd
* Apache 2 development headers... not found
* Apache Portable Runtime (APR) development headers... not found
* Apache Portable Runtime Utility (APU) development headers... not found

Some required software is not installed.
But don't worry, this installer will tell you how to install them.


足りないソフトウェアをインストールする方法も教えてくれるので、その指示に従ってインストールします。Apache Portable Runtime Utility (APU)はインストールしなくても大丈夫でした。APRと一緒にインストールされたのかもしれません。

# yum install gcc-c++
# yum install httpd-devel
# yum install apr-devel


もう一度、Apacheモジュールのビルドとインストールを行います。今度は成功しました。

# passenger-install-apache2-module


最後に、Apacheの設定ファイルに追記する内容が表示されるので、メモしておきます。ここではhttpd.confとは別にmod_rails.confを作成しました。

# vim /etc/httpd/conf.d/mod_rails.conf
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15
PassengerRuby /usr/local/bin/ruby


バーチャルホストの設定例も表示されるので、メモしておきます。


  ServerName www.yourhost.com
  DocumentRoot /somewhere/public # <-- be sure to point to 'public'!
  
    AllowOverride all # <-- relax Apache security settings
    Options -MultiViews # <-- MultiViews must be turned off
  
 


Apacheを再起動して、これでRailsアプリケーションを動かす準備ができました。

# /etc/rc.d/init.d/httpd restart