Index: [Article Count Order] [Thread]

Date:  Mon, 11 Mar 2002 08:17:17 +0900 (JST)
From:  GOTOU Yuuzou <gotoyuzo@notwork.org>
Subject:  [webrickja:13] Re: WEBrick working on Win9x ?
To:  webrickja@notwork.org
Message-Id:  <20020311.081717.26222409.gotoyuzo@kotetsu.does.notwork.org>
In-Reply-To:  <200203101713.g2AHDvHC018703@mail532.nifty.com>
References:  <200203110152.FMLAAB8885.webrickja@notwork.org>	<200203101713.g2AHDvHC018703@mail532.nifty.com>
X-Mail-Count: 00013

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
から取得できます。

--
ごとうゆうぞう