In message <200203101713.g2AHDvHC018703@mail532.nifty.com>,
`"TAMURA.KENICHI" <sgs02516@nifty.com>' wrote:
> たむらです。よろしくお願いします。
こちらこそ。よろしくお願いします。
> ◎ MinGW/MSWin
>
> 起動してクライアントが接続しに行くと応答待ちになるが、ruby.exe のCPU使用率がMaxまで行って応答なし。一応CTRL+C で殺せる。
1.6 系だと、IO::select がいつも [[], [], []] を返すとい
う現象に見舞われていて、うまく動きません。WEBrick 以外で
再現させきらないので、まともにレポートができないでいます ;-)
1.7 だと動いているようです。
> ◎ Cygwin
>
> / および、sample.rhtmlは、問題なく動く。ただし、sample.cgiは、InternalError(500)で動かないみたい。それでもhttpd.rbが落ちたりはしなかった。どうも、shebang の #!/usr/bin/env ruby がCygwin環境ではおかしい
>
> #!/usr/local/bin/ruby.exe にしたら、cygwin1.dll がPATHに無いと言われた。
ええと、これは子プロセス側で ENV をクリアしてから、
CGI/1.1 相当のメタ変数だけをセットしているために、PATH
が渡っていないからです。対策として考えられるのは、
1. cygwin1.dll を c:/windows とかに置く
2. httpd.rb の PATH を渡してやる
で、2. が親切ぽいのですが、他人の CGI に触れる環境だと、
意図しない穴を空けやすくなるような気もします。
渡せるようなオプションも用意した方がいいんでしょうか。
> tDiary が動けばと思って手を出してみましたが、ちょっと難しそうだっ
> たので、 wwwsrv を試してみたところ簡単に動きました。
> <URL:http://tamura.tdiary.net/?date=20020227#p01>
> WEBrick と wwwsrv とは守備範囲もずいぶん違いますが、やはり CGI が
> 簡単に Win9x 系で動くとうれしい人も多いと思いますので。
wwwsrv は、CGI を動かすためのインタプリタを選べるように
なってるんですね。
バイナリでもスクリプトでも同じ方法で起動できれば、と思っ
ていたんですが、Windows では難しそうなので、さきほど、
HTTPServer.new(
:CGIInterpreter => "/ruby17/bin/ruby",
...
)
のようにして、インタプリタを指定できるようにしてみました。
(nil の場合は、従来通りに exec します。)
Windows ではまだ動かしていないので、もしよければ試しても
らえないでしょうか。
スナップショットは、
http://www.notwork.org/ipr/cgi-bin/cvsweb.cgi/src/webrick
から取得できます。
--
ごとうゆうぞう