Index: [Article Count Order] [Thread]

Date:  Wed, 13 Mar 2002 04:29:50 +0900 (JST)
From:  GOTOU Yuuzou <gotoyuzo@notwork.org>
Subject:  [webrickja:16] Re: WEBrick working on Win9x ?
To:  webrickja@notwork.org
Message-Id:  <20020313.042950.46639346.gotoyuzo@kotetsu.does.notwork.org>
In-Reply-To:  <200203121658.g2CGwdHC002319@mail532.nifty.com>
References:  <20020311.081717.26222409.gotoyuzo@kotetsu.does.notwork.org>	<200203121658.g2CGwdHC002319@mail532.nifty.com>
X-Mail-Count: 00016

In message <200203121658.g2CGwdHC002319@mail532.nifty.com>,
 `"TAMURA.KENICHI" <sgs02516@nifty.com>' wrote:
> # 2. の『httpd.rb の PATH ...』良く意味が判りませんでした。

親プロセスの ENV["PATH"] を渡す、と言うつもりでした。

> > wwwsrv は、CGI を動かすためのインタプリタを選べるように
> > なってるんですね。
> 
> さっきテストしてみたら、
> perl_cgi = WWWsrv::CGIdocument::new("./", false,'perl')
> SERVER.mount(perl_cgi, '/', /\.cgi$/)
> 
> な設定でも、shbang 関係なしで動きますね。
> # 拡張子.cgi で Ruby なスクリプトも動作しました。

Perl や Ruby が shebang を解釈するからですね。

> > のようにして、インタプリタを指定できるようにしてみました。
> > (nil の場合は、従来通りに exec します。)
> > Windows ではまだ動かしていないので、もしよければ試しても
> > らえないでしょうか。
> 
> 以下のスクリプトで試してみました。一応 /usr/bin/ruby を
> シンボリックリンクで作って試したりしてみました。

> #  :CGIInterpreter => '/usr/bin/perl'       # 1
>   :CGIInterpreter => '/usr/bin/ruby'        # 2
> #  :CGIInterpreter => '/usr/local/bin/ruby' # 3

> 結果的には、1 の perl(笑 だけ動作します。pnamazu.cgi も正常に動きました。

うぐ、なんでだろ。

> セキュリティとのトレードオフになりますが、Cygwin に関しては、子プロセスの
> クリアをしないという引数を作っていただくか、 RUBY_PLATFORM で判断
> して、'/usr/bin' のみ PATH 設定してやるというのが、一番現実的な気
> がしますです。

RUBY_PLATFORM での場合わけよりも、

  :CGIPathEnv => "/usr/bin"

という感じで指定できるのが楽でよいです。クリアしないのと
同等のことがしたければ、ENV['PATH'] をそのまま渡せば済み
そうですし。

:CGIPathEnv という名前が変でなければ追加します。

--
ごとうゆうぞう