passengerとmod_autoindex

Passenger を使っていて、ディレクトリのautoindexが効かなくて困った。

Passengerもいくらか枯れてきている感じなので先日試したところ、確かに管理が楽なので最近気に入っている。ちょっと前まではRailsアプリケーションのデプロイと言えばmongrel+mod_proxy_blancerだったのだけれども、最近はpassengerの人気が上がっている。

passenger人気の理由はいくつかある。

のだけれども、細かなところで不満はある。autoindexが効かなくて困った。 マニュアル には、こう書いてある。

In places where PassengerHighPerformance is turned on, mod_rewrite rules will likely not work. mod_autoindex (the module which displays a directory index) will also not work.

だから、PassengerHighPerformance modeをonにしなければautoindexは効きそうなんだけど、Aliasと組み合わせると駄目なんだろうか? ともあれ、Aliasを切ったディレクトリに対して

PassengerEnabled off

したところ、autoindexでディレクトリインデックスが表示されるようになった。

Passengerのソースコードは最初に出たときにざっと眺めただけなのだけれども、mod_proxy_blancerを使うのと違ってApacheパイプラインの中のどのステージでなにをやってるのかいまいち把握できていないのがたまにもどかしい。先日も、passengerの出力にfilterを効かせるにはどうしたら良いのか悩んで、結局よく分からなかった。やっぱり、そろそろソースを読む頃合いだろう。