2006年 01月 17日

CGI FastCGI, ruby

既存のスクリプトを修正せず、そのまま fcgi 化したい。

Web Server 側の設定の変更だけでいきたい。

fastcgi.server             = ( ".rb" =>
( "localhost" =>
(
"socket" => "/tmp/fcgi-ruby.socket",
"bin-path" => "/usr/local/bin/ruby-fcgi.rb"
)
))

とか書くとして (仮定)、ruby-fcgi.rb を考えたい。しかしながら FastCGI の仕組みがいまいちわかってないのでとりあえず保留。

UNIX ソケットであらかじめ起動してある CGI 実行プロセスと通信する?みたいなのはわかるんだけど、実際のとこ、この bin-path に指定したプログラムと、実際にリクエストされたファイルの関係がわからない。普通の CGI は引数にリクエストされたファイルを渡すけど、FastCGI はどうなるんだろう。というところで、試そうと思うんだけど、ちょっと環境構築に手間取っている。

というか、できるなら既にそういう方法が発見できるはずなんだけど、ないってことはやっぱないんだろうか。Ruby に環境を保存しておく機能がないんだっけ。callcc ?

UNIX ソケットで、とは限らないようだ。TCP/IP でもできる (すなわち、別のサーバにもおける) みたい。

普通の CGI は引数にリクエストされたファイルを渡すけど って嘘つきすぎ(w

CGI はただたんにリクエストされたファイルを起動してるだけだ。shebang を混同してる。

うーん。よくわからん。FastCGI を使ったアプリケーションを作るたびに、HTTPD の設定ファイルも書き換えないといけないんだろうか。

ENV を書き換える方法がないから無理だなこれ。