BitArts Blog

ロードバイク通勤のRubyプログラマで伊豆ダイバー。の個人的なブログ。

Passengerことmod_railsのインストール

現在、Ruby on Railsの本番運用環境にはコレという決定打がない感じだ。僕が開発したシステムでは現状2件ほどApache+FastCGIで動かしているがちょっと不安定な感じがする(稀に落ちる)。他にはMongrelThinなどのPureRubyなWebサーバを別途動かしてApacheからリバースプロキシを設定するという方法も結構一般的なようだが、正直面倒くさいし、いくつもWebサーバを動かすという冗長感がRubyらしくなくて拒絶反応。

で、最近登場した新プラットフォームが「Passenger」だ。というよりmod_railsと言ったほうが分かりやすい。簡単に言えば、ようするにmod_railsです。これなら僕のように「Apacheじゃなきゃ」という古い人間にも安心。

さっそくインストール、…が、インストール途中でエラーが出てしまい頓挫。…したけど、結局RubyGemsをアップデートしたら解決。

ということなので前準備としてRubyGemsをアップデートしておく。こう。

# gem update --system 

新しいRubyGemsではrequire_gemが廃止されているので、このままだと一部のパッケージがうまく動作しない。たとえばrakeを動かすとこうなる。

/usr/bin/rake:17: undefined method `require_gem'
for main:Object (NoMethodError)

このままだとやっぱりPassengerのインストールも失敗するので、こうする。

# gem pristine --all 

以上で前準備終わり。ここからがPassengerのインストール。

Passengerはgemで簡単にインストールできる。

# gem install passenger 

gemしたら、インストールコマンドを叩く必要がある。

# passenger-install-apache2-module 

インストール完了後出てくる表示通り、httpd.confでLoadModule、RailsSpawnServer、RailsRubyを設定する。(以下は例、パスなど環境によって異なる)

LoadModule passenger_module /path/to/ext/apache2/mod_passenger.so
RailsSpawnServer /path/to/so/bin/passenger-spawn-server
RailsRuby /usr/bin/ruby

あとは普通にCGI向けのpublic/.htaccess設定で動く。(必要に応じてhttpd.confでAllowOverride Allしてね)

従来のことを考えると、超簡単シンプル(・∀・)!Rails習作のマリンボウ写真館をしばらくこの環境で動かしてみる。