PHPとPassengerのこととか

KoshigoeBLOG: Passengerのドキュメント読んだ

コメント欄にレスを書こうとしたけどTypeKeyに行く手を阻まれたのでここで。

比較的新しいソフトウェアなので、実績面で不安がありますが、(中略)
対応プラットホームも割と多く検証している気がしますが、そうでもないんでしょうかね。

最近のコミットログを見るに64bit LinuxとMac OS Xあたりの対応でいろいろとやっている模様。
実際に自分の手元でも64bitのCentOS 5.1で動かなかったりしたので、実績や検証はまだまだ足りないレベルかと。

Passengerを使う場合、mod_phpとか有効にすると邪魔になったりするのだろうか。Railsアプリが動くプロセスにmod_php分が上乗せされるのが気持ち悪いけど、気持ち悪いだけで、システムへの悪影響は全くないんだろうか。

通常のhttpdプロセスとは別にRailsアプリ専用のプロセスが立ち上がるのでmod_phpとPassengerが干渉しあうことはないと言ってよさそう。
そもそもPassengerはそうならないように注意深く設計されているとのこと。
ここらへんはPassengerアーキテクチャ概要に書いてありますな。

リクエストが来たらmod_passengerがRailsアプリに関係のあるリクエストがどうかを判断する。
関係のないリクエストはhttpdによってそのまま処理される。この時httpdにmod_phpが乗っていればPHPが動く。
関係のあるリクエストはRailsアプリケーションのインスタンスによって処理される。

といったかんじみたい。

ところでふと思いついて試しにRailsのViewの中にPHPスクリプトを書いて動かしてみたが、PHPは動かなかった。
一方でRAILS_ROOT/public以下のRailsアプリケーションが関与しないファイルは通常のhttpdプロセスによって処理されるので、ここにPHPスクリプトを置いておくと普通にPHPとして動作する。
ページキャッシュを使うとViewの中のPHPスクリプトもキャッシュ後に限って動くなぁ、とか思ったけどこのネタはあんまり役に立たなそうだ。

ところで

Passengerと呼ぶかmod_railsと呼ぶかどっちがいいのか。

前者が正式名称っぽいが、後者の方がわかりやすいよなー。
Rails以外のアプリも動くようにするかどうか検討中とかあるからPassengerと呼んでおいた方がいいのかな。

とりあえずPassengerで統一するか。

てか

ドキュメントの訳とかスゲー。→ KoshigoeBLOG: Passengerのドキュメント読んだ

前の記事

mod_rails安定稼働中

次の記事

Rails 2.1の主な変更点を整理