apache2 + mod_ruby

どうも、影舞を mod_ruby で動かしたときのエラーメッセージがおかしい。HTTP/1.1 200 OK とか出力されてるし。mod_rubyNPH のはずなんだけど・・・

影舞の問題かどうかを切り分けるために hello world を書いてテスト。

print "HTTP/1.1 200 OK\r\n"
print "Content-Type: text/plain\r\n\r\n"
print "hello world\r\n"

こうすると、HTTP/1.1 200 OK から全部出力されるし、

print "Content-Type: text/plain\r\n\r\n"
print "hello world\r\n"

こうしても Content-Type の行から出力されるし。

ぐるぐる探したところ、apache2 だと NPH として動かないという情報が。でも、Content-Type とかも正しく指定できないし、NPH として動いてないというよりは HTTP ヘッダを勝手に作ってるような気が。

require 'cgi'
cgi = CGI.new
print cgi.header({"type"=>"text/plain"})                                                
print "hello world\r\n" 

こうするとうまくいくから、cgi.rb はどうやってるんだって覗いてみると、Apache::Request クラスを使っていろいろやってるのを発見。だるすぎる。

それとも mod_rubyコンパイルのしかたが変だったりするのだろうか・・・