酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

さくらVPS/entOS 6.4 Passengerのインストール手順 [Apache][Railsサーバへの道]

さくらVPS 2GB SSDのCentOS 6.4をセットアップしてイケてるRailsサーバに仕上げるまでのシリーズです。第8回はPassengerの導入です。PassengerとはRailsのアプリケーションサーバの1つで、Apacheと組合せて使う方式はそれなりの時間が立って、熟れているのでネットでの情報も豊富です!


Passengerのインストール手順

gem install時にドキュメント生成を行わないようにする。
vim ~/.gemrcに以下の項目を追加。

1
gem: --no-rdoc --no-ri

RVM環境の場合はpassengerのインストール前にgemsetをgrobalにする。

1
rvm gemset use global

gem passengerをインストール。

1
gem install passenger

passengerのapacheモジュールのインストール。

1
passenger-install-apache2-module

インストールが完了したら、以下のコマンドを実行。

1
passenger-install-apache2-module --snippet

Passengerの設定

以下のコマンドを実行すると、

1
passenger-install-apache2-module --snippet

apacheとの連携に必要な設定が次のように出力されます。

# 環境によって設定値が異なりますので以下の3行はそのまま転記しないでください。
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p247@global/gems/passenger-4.0.18/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p247@global/gems/passenger-4.0.18
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p247@global/ruby

sudo vim /etc/httpd/conf.d/passnger.confで以下の内容を追加。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Passengerの基本設定
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p247@global/gems/passenger-4.0.18/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p247@global/gems/passenger-4.0.18
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p247@global/ruby

# Passengerが追加するHTTPヘッダを削除するための設定
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"

# 必要に応じてPassengerのチューニングのための設定を追加
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
RailsSpawnMethod smart
RailsAppSpawnerIdleTime 86400
PassengerMaxPreloaderIdleTime 0

Apacheの文法チェックです。

1
2
apachectl configtest
> sintax ok <= と出れば成功。

以下でApacheを再起動してブラウザで表示確認。

1
sudo /etc/rc.d/init.d/httpd restart

もし本番環境の場合は、vim ~/.bashrcで以下を追加。

1
RAILS_ENV=production

source ~/.bashrcを実行して設定を反映。

補足:Passengerの実行ユーザー

Passengerの実行ユーザーは各プロジェクトのconfig/environment.rb ファイルのオーナーだそうです。理由は、共有サーバーでPassengerを利用した場合に、他の利用者のファイルをRailsアプリからアクセス出来ないようにする為らしいです。

補足 : Apacheのバーチャルホスト セットアップ手順

Apacheのバーチャルホストの設定ファイル(sudo vim /etc/http/conf.d/vhost.confなど)をApache VirtualHostの設定を参考に編集。

コンソール
1
2
3
apachectl -t
> Syntax OK
touch tmp/restart.txt

Special Thanks

CentOS 5.3にApache をインストール

RVM: Ruby Version Manager - Passenger - Come on, ride the train, hey, ride it, woo woo…

CentOSにRedmineをインストール

変更来歴

12/14 22:15 タイトルを変更、全体の構成をシリーズものに合わせて編集
09/24 07:20 Ruby2.0.0対応 & CentOS 6.4対応、記述ミス修正

検証環境

今回の記事の検証環境は以下の通りです。

Local/Server:
  Ruby: 2.0.0
  Rails: 4.0.0

Local:
  OS: Mac Mountain Mountain Lion(OS X 10.8.4)

Server(さくらVPS 2G SSD):
    CentOS release 6.4 (Final)

おすすめの書籍