前田です。 At Sat, 18 Oct 2003 20:42:39 +0900, 堀川 久 <vzw00011 / nifty.ne.jp> wrote: > ●標準出力への出力はすべてmessage-bodyとなる > > CGIでは次のようにヘッダに続けてbodyを出力するように書きますが、 > mod_rubyではすべてmessage-bodyとして扱われます。 > > print "Content-Type: text/html\n\n" > print "foo\n" > > 上記のスクリプトは、mod_rubyでは、Content-Typeの行も表示されます。 Apache2ではそうなっていますね。 > FAQにはNPH-CGIのように動作すると書かれていますが、実際にはそのようには > なっていませんよね? Apache1ではNPH-CGI互換の動作になります。 Apache2でこのあたりの挙動が変わったようです。 # くわしくは調べていませんが。 > ●標準出力への出力は、$stdoutを使う > > 標準出力オブジェクトを明示的に指定する場合は、STDOUTではなく、 > $stdoutを使わなければなりません。 これはまだ迷っています。 At Fri, 17 Oct 2003 14:48:04 +0900, Shugo Maeda <shugo / ruby-lang.org> wrote: > あ、Apache::RubyRunとApache::ERubyRunでは、ruby_wrapper(mod_ruby > スクリプトのトップレベルのモジュール)にSTDOUTを定義するという手がありますね。 > そうすればもとのSTDOUTは::STDOUTで参照できるし。 と思ったんですが、これだとrequireされたライブラリからは再定義され たSTDOUTが参照されないんですよね。 中途半端にサポートすると余計にはまりそうなので、いっそのこと Apache::CGIRun(名前はともかく)みたいなCGI互換モード専用のモジュー ルを用意して、ヘッダの処理も含めてサポートした方がいいのかもしれ ませんね。 -- 前田 修吾