さっそくPassengerをインストールしてみた

Passenger (mod_rails for Apache) がリリースされた。

いやーほんとに来るとは思っていなかったので非常にうれしい。

インストールも簡単で、設定も簡単。サイトも非常にわかりやすいのなんのって!

以下、Ubuntu7.10環境にインストールしたときの記録。

$ sudo gem install passenger
$ sudo passenger-install-apache2-module

途中、インストーラに足りないと言われたので、言われるがままにapache2-prefork-devとlibapr1-devパッケージをインストール。

$ sudo apt-get install apache2-prefork-dev
$ sudo apt-get install libapr1-dev

もう一度Passengerのインストーラを実行する。

$ sudo passenger-install-apache2-module

こんどはうまくいった。

次に、Apache2でPassengerを読み込むためにmod_availableディレクトリにpassenger.loadを作る。

$ sudo vi /etc/apache2/mods-available/passenger.load

中身はこの3行だけ。ここはpassengerのバージョンによって変化するので注意。たとえばpassenger-1.0.2になれば、以下の行にあるpassenger-1.0.1の箇所を書き換える必要がある。

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

Apache2の起動時にPassengerモジュールを読み込むようにa2enmodを実行する。

$ sudo a2enmod passenger
Module passenger installed; run /etc/init.d/apache2 force-reload to enable. 

設定を有効にするためにApache2をリロードする。

$ sudo /etc/init.d/apache2 force-reload
 * Reloading web server config apache2

あとは自分の環境にあわせてApache2の設定ファイルを変更する...といっても、普通はDocumentRootに、起動したいRailsアプリのpublicディレクトリのパスを指定するだけ。ただそれだけ。

Ubuntu7.10だと /etc/apache2/sites-available/default のDocumentRootを変更すればいい。

#       DocumentRoot /var/www/
        DocumentRoot /home/hoge/rails/moge/public

最後にDocumentRootの変更を有効にするためにApache2を再起動して終わり。

$ sudo /etc/init.d/apache2 restart

インストールが簡単なのに加えて、インストーラの作りが秀逸で、足りないソフトウェアがあるとインストール方法まで示してくれる。かといってやり過ぎな感じはなく、文体も非常にシンプル。インストールを心地よいと感じたのは初めてかもしれない。これはぜひ真似をさせてもらおう。


これまで職場のRailsアプリではfastcgiを使っていてちょっと不安定だったが、この際なのですべてPassengerに移行する予定。