Passenger(mod_rails)をインストールしてApache2+Railsをシンプルに行こう

Passengerって何?

Passenger

mod_rails って言えば大体役割は伝わります。Apache2上で Ruby on Rails を動作させるためのApacheモジュールです。
今まで、Apache+Railsの実現には mod_ruby や Fast CGI などが使われてきたようですが、設定がやや面倒という印象がありました。
Passengerはその面倒さを和らげてくれるありがたいモジュールを提供してくれます。

Passengerをインストール

前提として Ruby と RubyGems、Rails がインストールされている状態とします。
さっそく下記コマンドで passenger をインストールしましょう。(インストールの仕方はPassengerのページで説明されています)

gem install passenger

インストール権限があればこのコマンドだけでインストールできます。途中、依存関係にあるライブラリのインストールも求められた場合は一緒にインストールしましょう。

Apache2モジュールのインストール

Passengerをインストールしたら、Apache2モジュールをインストールします。
まずは、どのApache2に対してモジュールを生成するか指定しましょう。

export APXS2=[APACHE_ROOT]bin/apxs

指定したら、あとは下記コマンドでインストールするだけです。

passenger-install-apache2-module

コマンドを実行するとテキストベースのインストーラーが立ち上がりますので、Enterを押してステップを消化していきます。
インストールが成功すると、「Apacheの設定ファイルに下記のような設定を追加してね!」的なメッセージが出ますので、さくっと設定ファイルにコピペしましょう。
(環境によってパスが異なります)

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-1.0.1/ext/apache2/mod_passenger.so
RailsSpawnServer /usr/local/lib/ruby/gems/1.8/gems/passenger-1.0.1/bin/passenger-spawn-server
RailsRuby /usr/local/bin/ruby

あとは、バーチャルホストの設定などをしてApacheを再起動すればRailsアプリがすぐに動きます。
(実はモジュールインストール時、aprが古いとか、RubyGamsが古いとか、新しくしたらメソッドねーよとか、色々もてあそばれましたが、普通の環境なら大丈夫だと思うので省略します)

Fastladderを入れてみる

せっかく環境が整ったので、Fastladderを入れて遊んでみる。

svn co http://fastladder.googlecode.com/svn/trunk/fastladder/ fastladder

まずはsvnリポジトリからソースをチェックアウト。
あとは、"INSTALL.txt" に書いてあるものをインストールする。

gem install rfeedfinder
gem install feed-normalizer
gem install opml
gem install mongrel
gem install sqlite3-ruby

FreeImage っていうライブラリも必要らしいので入れる。

wget http://jaist.dl.sourceforge.net/sourceforge/freeimage/FreeImage3100.zip
unzip FreeImage3100.zip
cd FreeImage
make
make install

これで必要なものは全部揃いました。

Fastladderのセットアップ

バーチャルホストの設定(サンプル)

<VirtualHost *:80>
  ServerName www.yourdomain.com
  DocumentRoot [設置パス]/fastladder/public
  <Directory "[設置パス]/fastladder/public">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

DBの初期化とクローラーの起動

cd [設置パス]/fastladder
RAILS_ENV=production
rake db:migrate
script/crawler > /dev/null &

これでセットアップ完了です。

Fastladderプレビュー

Fastladder(注:プレビューなので真面目に使わないようにしてね)
うまく行ったようです。よかったよかった。
ちなみに、ものすごく重いですが、Passenger が悪いわけではなく、テストサーバが低能なだけです。あしからず。
でも実際 Passenger の処理能力は気になるところ。早く運用実績が公開されるといいですね。

まとめ

導入ハードルを低くする事が普及への近道ってのはもっともな話しで、エライ方々に定期的に叩かれてるPHPがあれだけ普及してるのは、まさに導入が「ラクチン」だったからに他ならないと思う。
そういう意味では、その評価ほど普及率が高くないRails(ruby)もやっと裾野を広げるチャンスが巡って来たのでは?

--
はい、実はRails真面目に使った事ありません。
Name
Email
Your website or blog
Comment
Security code (CAPTCHA™)