Phusion Passenger 2.2.9 released « Phusion Corporate Blogの意訳です。自分用のメモ。
Rails3の互換性を修正
以前のバージョンのpassengerでも既にRails3への互換性はあったんだけど・・・
詳細は以下の通り。
passenger2.2.8より、config.ruが存在するときにpassengerはアプリをRailsアプリではなくRackアプリとして扱うようになった。それ以前のバージョンでは、RackよりもRailsを優先して検知するようにしていた。passengerはRackアプリとRailsアプリを異なる方法でロードする。RailsローダーはRails3と互換性がなかった。これを修正した。
Rails3アプリはconfig.ruファイルをデフォルトで含むので、passenger2.2.8でも動く(2.2.8はRackローダーを使うから)。それ以前のバージョンのpassengerはRailsローダーを使うのでダメ。
2.2.9はまだいくつか注意点がある。
- Smart spawning(REEで33%メモリ節約!なメカニズム)はRackアプリをサポートしてない。つまりsmart spawningをRails3で使いたかったらconfig.ruファイルを削除する必要がある。
- Rails3はRack1.1.0に依存してる。Rack1.1.0をgemでインストールする必要がある。もしgem bundlerでRack1.1.0をインストールしてても、きちんとgemでインストールしなきゃだめ(passengerもRack依存なので)
上記の二つの注意点は一時的なもので、将来的には解決する予定ですよとのこと。
Gem Bundlerとの互換性
Yehuda Katz’s gem bundlerとpassengerに互換性がないという報告がいくつかあがっている。これはたぶん初期バージョンのgem bundlerの話で、最新はうまくうごくはず。gem bundlerのREADMEに書いてある下記のsnippetをconfig/preinitializer.rbに挿入するのを忘れずに
require "#{RAILS_ROOT}/vendor/gems/environment"
ActiveRecordのサブクラスが他のデータベースにつながっている時のバグを修正
ActiveRecordのサブクラスがデフォルトのもの以外のデータベースに接続してるときに、forkすると接続が正しくクリアされなかった。これは"Lost connection to MySQL server during query"のような変なエラーの原因になっていた。これを治した
(nginx)PCREのURLを修正
PCREがインストールされていないときに、passenger-install-nginx-moduleはPCRE7.8をダウンロードする。PCRE7.8がFTPサーバから削除されたので、8.0のURLに更新した。