このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

WebSTARの仮想ドメインでSSIが働かない

発言者:MusicGoblins
( Date Wednesday, February 02, 2000 17:41:18 )


どなたか教えてください。
当方WebSTAR3.0.2Jで仮想ドメイン(マルチIP)を用いて複数サイトを運用して
います。OSは8.1J,OpenTransport1.3です。
CGIでカウンターを使いたいのですが、以下のような現象が起きています。

以下、WebSTARでの現象です。
任意の仮想ドメインindex.htmlにカウンターを呼び出すSSIを記述しています。
呼び出し部ではcgiを指示するのに /cgi-bin/counter.cgi と記述しています。
フォルダ[cgi-bin]はWebSTAR本体と同じパス上にあります。
(WebSterから見るとルートになっています。)

この状態で
index.htmlをブラウズするのに次の2通りを試します。
1. http://www.AAA.com/BBB/index.html(実ドメインでアクセス)
2. http://www.BBB.com/index.html (仮想ドメインでアクセス)
結果
1.はCGIを実行するが2.はCGIを実行しない(WebSterがエラー文で置き換える)状態がでます。
※エラー内容はCGIが実行できないという内容です。

仮想ドメインはWebSTAR側で IPを分けて設定しています。
なにがおかしいのでしょうか?よろしくお願いします。


田中求之 さんからのコメント
( Wednesday, February 02, 2000 18:55:32 )

仮想ドメインでアクセスされたときは、BBB というフォルダーがルートフォル
ダ(ディレクトリ)になるわけですよね。すると、SSI の中で指定された
カウンターの URL は /cgi-bin/counter.cgi ですから、WebSTAR は
当然のことながら、「BBB フォルダーの中の cgi-bin フォルダーの中の
counter.acgi 」を実行することになります。

そのため、CGI が見つからずにエラーになるわけです。

対策の一番安易な方法は、cgi-bin のエイリアスを BBB の中にいれておく
ことではないかと思います(試してませんが)。

MusicGoblins さんからのコメント
( Wednesday, February 02, 2000 19:28:54 )

田中先生 ありがとうございます。

ご指摘通りにしてみたところうまくいきました。

ただ、他の方法で一つのCGIホルダーを指定することってできるものでしょうか?
やっぱり(仮想ドメインから見ると)ルートより上になるので無理でしょうか?

MusicGoblins さんからのコメント
( Thursday, February 03, 2000 00:12:52 )

自己レスですが、基本的にはそのルートディレクトリごとにcgi-binフォルダを
置くしかなさそうですね。

どうもありがとうございました。

それにしてもエイリアスをつかうとは・・参りました。

田中求之 さんからのコメント
( Thursday, February 03, 2000 01:28:19 )

>基本的にはそのルートディレクトリごとにcgi-binフォルダを
>置くしかなさそうですね。

原理的に考えて、そうするしかないですね。

もしこれが煩雑だということであれば、Action で動かせる CGI の変更するか
Plug-in を用いるということになりますね。

寺港みやび さんからのコメント
( Sunday, February 06, 2000 12:40:01 )

遅めのフォローですが
うちでは田中先生の紹介されている
cgi-binのエイリアスを仮想サーバーのルートにおいてます。
問題なく動いてますよ。

補足:cgi-binはあくまで元の場所にあるので
   もしcgiに$や?でパスを渡す時は、元のcgi-binから見た
   パスをかかないとダメなんですよ。

MusicGoblins さんからのコメント
( Sunday, February 06, 2000 18:29:20 )

寺港みやびさんありがとうございます。
おかげさまで今は問題なく動いております。