CentOSにPassenger/Ruby2.0/Rails4.0をインストールしてみる(rbenv版)

VirtualBoxにインストールしたCentOSの環境に
rbenvでRubyの2.0をインストールして、あとPassengerとRails4.0をインストールしてみる。

rbenvのインストール

rbenvのインストールにはgitが必要なので、gitをインストールしておく。

$ sudo yum -y install git

rbenvをインストールする。
手順はrbenvに書かれているとおり。

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

ruby-buildをインストールする。
こちらも手順はruby-buildに書かれているとおり。

$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ cd ~/.rbenv/plugins/ruby-build
$ sudo ./install.sh

Ruby2.0のインストール

次に、Ruby2.0をインストールする。
まずは、Rubyのインストールに必要なパッケージをインストールする。

$ sudo yum -y install gcc gcc-c++ make openssl-devel zlib-devel readline-devel

rbenvでインストール可能なRubyのバージョンを確認し、(現時点では2.0.0-p353)

$ rbenv install --list

Ruby2.0をインストールする。

$ rbenv install 2.0.0-p353
$ rbenv rehash
$ rbenv global 2.0.0-p353

Passengerのインストール

Pasengerをインストールする前に、Apacheをインストールしておく。
サーバー起動時に自動起動する設定もしておく。

$ sudo yum -y install httpd
$ sudo chkconfig httpd on

Passengerに必要なパッケージをインストールする。

$ sudo yum -y install curl-devel httpd-devel

Passengerをインストールする。

$ gem install --no-ri --no-rdoc passenger
$ rbenv rehash
$ passenger-install-apache2-module

最後の方に表示される文をpassenger.confに貼り付ける。

$ sudo vi /etc/httpd/conf.d/passenger.conf
LoadModule passenger_module /home/dev/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/passenger-4.0.29/buildout/apache2/mod_passenger.so
PassengerRoot /home/dev/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/passenger-4.0.29
PassengerDefaultRuby /home/dev/.rbenv/versions/2.0.0-p353/bin/ruby

Railsなどのインストール

必要なパッケージをインストールし、

$ sudo yum -y install sqlite-devel

Railsなどをインストールする。

$ gem install --no-ri --no-rdoc rails
$ gem install --no-ri --no-rdoc sqlite3
$ rbenv rehash

Railsアプリケーションの作成

Railsのアプリケーションを作成する。
今回はホームディレクトリに作成する。

$ cd
$ rails new sample

Gemfileを開いてgem 'therubyracer'の部分のコメントアウトを解除する。
そうしないと、なぜか「Could not find a JavaScript runtime.」のエラーになる。

$ cd sample
$ vi Gemfile
gem 'therubyracer', platforms: :ruby	←コメントを外す
$ bundle install

httpdの設定

バーチャルホストの設定をする。
Passengerはデフォルトでproductionのため、このままだとなぜかエラーになる。
そのためRailsEnv developmentを指定しておく。

$ sudo vi /etc/httpd/conf/httpd.conf
NameVirtualHost: *:80	←コメントを外す
$ sudo vi /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
   ServerName www.yourhost.com
   # !!! Be sure to point DocumentRoot to 'public'!
   DocumentRoot /home/ユーザー名/sample/public
   RailsEnv development
   <Directory /home/ユーザー名/sample/public>
      # This relaxes Apache security settings.
      AllowOverride all
      # MultiViews must be turned off.
      Options -MultiViews
   </Directory>
</VirtualHost>

apacheユーザーが作成したsampleにアクセスできるようにする。
(こういう設定してセキュリティ的に大丈夫なのかよく分からないが)

$ chmod 750 /home/ユーザー名
$ sudo usermod -G ユーザーのグループ名 apache

httpdを起動する。

$ sudo service httpd start

以上で、下記のURLにアクセスすると、Railsのページが表示される。
http://サーバーのアドレス/