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

Ruby 2.0 で Passenger を動かしてみた - akishin999の日記
http://d.hatena.ne.jp/akishin999/20130224/1361716958

を参考にしながら、
VirtualBoxにインストールしたCentOSの環境に
・Passenger
・Ruby2.0
・Rails4.0
をインストールしてみる。

Ruby2.0のインストール

Rubyの2.0をインストールする。

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

# yum -y install wget
# yum -y install gcc gcc-c++ make openssl-devel zlib-devel readline-devel

次に、Rubyの2.0をダウンローし、インストールする。
現時点の最新は「ruby-2.0.0-p353」だったので、これでインストールする。

# cd /tmp
# wget ftp://core.ring.gr.jp/pub/lang/ruby/2.0/ruby-2.0.0-p353.tar.gz
# tar xzf ruby-2.0.0-p353.tar.gz
# cd ruby-2.0.0-p353
# ./configure --with-opt-dir=/usr/local --enable-shared --enable-option-checking
# make
# make test
# make install

Passengerのインストール

Passengerをインストールする。

まず、httpdをインストールし、サーバー起動時に自動起動するようにしておく。

# yum -y install httpd
# chkconfig httpd on

次に、Passengerのインストールに必要なパッケージを入れ、

# yum -y install curl-devel httpd-devel

Passengerをインストールする。

# gem install --no-ri --no-rdoc passenger
# passenger-install-apache2-module

インストールの最後のほうに表示された文をメモっておいて、
passenger.confを作成し貼り付ける。

# vi /etc/httpd/conf.d/passenger.conf
LoadModule passenger_module /usr/local/lib/ruby/gems/2.0.0/gems/passenger-4.0.29/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/2.0.0/gems/passenger-4.0.29
PassengerDefaultRuby /usr/local/bin/ruby

Railsなどのインストール

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

# yum -y install sqlite-devel

railsとsqlite3を入れる。

# gem install --no-ri --no-rdoc rails
# gem install --no-ri --no-rdoc sqlite3

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

以上でインストールは完了。
次に、アプリケーションを作成する。

今回は/var/wwwの下に作成する。

# cd /var/www
# rails new sample

このままだと、「Could not find a JavaScript runtime.」のエラーが出るので、
Gemfileのgem 'therubyracer'のところのコメントアウトを解除し、bundle installする。

# cd sample
# vi Gemfile
# gem 'therubyracer', platforms: :ruby	←コメントアウトを解除する
# bundle install

とりあえずapacheユーザーにしておく。

# chown -R apache:apache /var/www/sample/

httpdの設定

httpdの設定を変更し、/var/www/sample/publicをドキュメントルートにする。

# vi /etc/httpd/conf/httpd.conf
#DocumentRoot "/var/www/html" ←コメントアウト
DocumentRoot "/var/www/sample/public" ←追加

passengerはデフォルトでproductモードになっており、
このままだとエラーになるので、httpd.confに下記を追加する。

RailsEnv development
【参考】
眠るシーラカンスと水底のプログラマー(旧):Ruby on Rails:Passengerで躓く(というかぐち) - livedoor Blog(ブログ)
http://blog.livedoor.jp/coelacanth_blog/archives/55255349.html

httpdを起動する。

# service httpd start

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