AN HTTPD ゲストブック/コメント集(1999年11月10日21:22)


中田昭雄 nakata@st.rim.or.jp 1999/11/11 21:19

深井さん、
jsearch は UNIXの標準コマンド ls を使っているのでどう設定してもそうなります。
Windowsには ls というコマンドはないからです。

Cygnus の GNU for Win32 を入れれば ls は使えるようになりますが、jsearchのやり方だとそれだけではだめのようです。
Perl の readdir などを使って書き直すのがいいのでしょう。


ぴゅあ pure@GalaxyCorp.com 1999/11/11 16:31

>深井涼さん
 「1.抽出なし」という結果が出るのはどんな言語を使っても大抵見る場所が違っていたり見方
が違っていたりです。動いてはいるようですので解決させるのはそれほど大変ではないでしょう。
 Perl(というかHTMLというのかブラウザ?)の場合だと比較する文字列の文字コードが違って
いるということが考えられるのではないでしょうか。
 「1.抽出なし」という実際に見つからなかったときの結果が出ているということですよね?

 ん?ファイルを探す?
 パスの指定の仕方が違うためにファイルが見つからないとか?


深井 涼 Fukai@mcn.ne.jp 1999/11/11 10:52

> 中田昭雄 様

早速のお返事ありがとうございます。

>ISP(UNIX)で動いても Windowsでは動かないことは結構あります。

printenv.cgiでテストしたところ、問題なく動きましたので、ANhttpdのセットアップ
時の基本的な設定を間違ってしまってはいないようですので、jsearch.cgiの問題でしょうか?

>jSearch はやってみたことがないのでちょっとわかりませんが、まずは、「動かない」
>というのがどういう症状かをお知らせ下さい。

ウェブ裏技レスキューさんのjsearchは、検索したい「文字列」を含むHTMLファイル
もしくはTXTファイルを指定したディレクトリから探してきて、マッチングする
ファイル名とURL(リンク)を検索結果画面に表示するというCGIですが、試しに
ANhttpdを走らせた上で、20件以上存在する文字列を検索させ、本来なら検索結果画面に
マッチしたHTMLファイル名が表示されるはずなのに「1.抽出なし」となってしまうのです。

>なにも表示されないようなエラーでしたら、オプション/一般の「CGI出力を検査」の
>チェックを入れて再度やってみてください。

結果は同じでした。

何となく、cgiスクリプトの中で数カ所設定しなければならない「検索先ディレクトリ」や
トップページのURLなどは、オンラインの場合は絶対リンクで問題なく動くのですが、
仮サーバ内で動かす場合の相対的な位置づけを私が間違って設定しているのだと思います
が、どう直せば動くのかが分かりません。

PS:上記のような任意の文字列を含むHTMLファイルを探してそのファイル名を表示
(リンク付き)するようなCGIで、ANhttpd環境で確実に動くようなものって
有りますでしょうか??
どなたかご存知の方はお教えください。


中田昭雄 nakata@st.rim.or.jp 1999/11/10 21:30

深井さん、
ISP(UNIX)で動いても Windowsでは動かないことは結構あります。
jSearch はやってみたことがないのでちょっとわかりませんが、まずは、「動かない」というのがどういう症状かをお知らせ下さい。
なにも表示されないようなエラーでしたら、オプション/一般の「CGI出力を検査」のチェックを入れて再度やってみてください。
そしてそれで何かメッセージが表示されるようでしたらその内容をお知らせ下さい。


深井 Fukai@mcn.ne.jp 1999/11/10 21:22

はじめまして、深井と申します。
今週号の「週刊アスキー」で初めてANhttpdを知った新参者&初心者&スケベ者です。

さて、「レスキュー」さんの「簡易サーチエンジン jSearch <SJIS専用> v1.12」を
ローカルで動かす技を探していたので、ANhttpdの存在は大いに助かるかなと
思っているのですが、既にISPのサーバ上で動いているCGIが動きません。
perlは読みに行っているようなのですが....
この掲示板の過去ログにおそらく同様の質問があろうかと探しはじめましたが、
あまりに書き込みが盛り上がっておられるので探し出せませんでしたので、超初歩的な
質問で恐縮ですが、お教えをいただければ幸いです。

おそらく、jsearch.cgiの記述の中の、

#このスクリプト(jsearch.cgi)から見た検索対象の最上位域までのパス 最後に/を忘れずに
$base = '../../';

#ホームページディレクトリ(最上位URL) 最後に/を忘れずに http://から書いても可
$baseurl = 'http://JUBA.OC-TO.NET/';
         ↑
上記の表記がローカルの外に行こうとしているのでダメになっているのかな〜と思うのですが、
具体的にどのように直せば良いのか分かりません。

現在のローカル・ディレクトリ構成は以下の通りです。

D:Marumaru-files
 ├Homepage
   ├Octo2
     ├htdocs
       ├cgi
       │ ├jsearch
       │   ├jsearch.cgi
       ├database
         ├datacard
           ├0001.html
           ├0002.html(以下、同じ名前パターンのファイル)

としており、検索先は上記datacard内のhtmlファイルです。

なお、別件ですが、CD上でも動くのでしょうか?動く場合の留意点は?

長くなりましたが、よろしくお願いいたします。