さっそく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に移行する予定。