Home Sweet Home LANLAN Project



1997年4月中旬某日(土)(日)
さて、本日は、かねてからの野望で、でもなかなかうまくいかない(笑)、ホームページの全文検索に挑戦っ!

紫野は perl を読み書きできない(それを言うなら、言語は全部読めないんだが。)ので、頂いてきたものを使わせて頂くのみです。相変わらず他力本願爆発(ほほほっ)

ひとつめは、MHonArc のホームページから辿れる MailSearch スクリプトです。
この perl スクリプトはディレクトリーツリーの検索はできませんが、結構高速で結果表示にヒットした行もいっしょに表示してくれるので、Useful。MHonArc で html 化した ML の検索に使用することにしました。

ホームページから頂いてきて適当な場所に安置します。(cgiの実行が許可されている場所に置かなくてはなりませんね。)スクリプトだからファイルモードはとりあえず 755 に設定しておきましょう。名前が .cgi である必要があるなら変更します。必要ならば最初の行の perl の位置を変更しておくことを忘れずに。
HTML からの呼び出し方は form を使用します。詳細は MailSearch のホームページを参照しましょう。設置はそんなに難しくありません。自分の環境に合わせて適宜変更してみます。

<html>
<head>
<title>Home Inoue Home Search Page</title>
</head>
<body>
<h3 align=right>検索したい語句を入力してね(^=^)/</h3>
<p align=right>
<form method=post action="/cgi-bin/mailsearch.cgi">(自分がスクリプトを置いた場所。URL で見てどこか?)
<input type=text name=Term>
<input type=submit>
<input type=hidden name=listbase value="~tohtml/hogehoge">(URL で見て、どこのディレクトリを検索対象にするか?)
<input type=hidden name=Owner value="shino@cristal.club.or.jp">(検索結果のページに表示されるリンク)
<input type=hidden name=OwnerName value="Shino Katsuragi">(検索結果のページに表示される)
<input type=hidden name=ListAddress value="shino@cristal.club.or.jp">
<input type=hidden name=ListDescription value="Home Inoue Home (hogehoge page)">
<input type=hidden name=TitleAlignment value="right">
<input type=hidden name=HomePage value="http://www.home.or.jp/">(検索結果からホームページに戻る場所)
</form>
</p>
<hr width=33% align=right>
</body>
</html>


    このフォームは実際には使用できません。
    上のフォームを表示させて見るとこんな感じ

    検索したい語句を入力してね(^=^)/



これで、送信ボタンをクリックすると、/cgi-bin/mailsearch.cgi が実行されるわけです。

紫野の場合、mailsearch.cgi を多少変更する必要がありました。

  • $BasePath = glob($1 . ($PublicHTML ne "off" ? "/public_html" : "") . $2);
    の部分の public=html を html に直した。(これは、apache で紫野が、ユーザーのディレクトリをそう指定しているからですね。)

  • 日本語処理をするために、jcode.plの処理を追加した。
    perl が良く分かっていないので、変な処理をしているのだろうけれど、とりあえずこれで動きます(とほほ〜)
    紫野は Nifty4U のパッケージに含まれていた jcode.pl を使用しましたが、たいていの FTP サーバーにはそろえてあるようです。

    スクリプトの先頭で、require 'jcode.pl' を追加する。

    #Send the HTTP Headers
    print "Content-type: text/html\n\n";
    # call jcode.pl
    require 'jcode.pl';

    フォームから入力された Term を euc に変換する。(対象の html ファイルは euc で記述されています。)

    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    #convert to 'euc'
    &jcode'convert(*value,'euc');

    はい、これで日本語で検索かけても大丈夫ですね(^_^)。

    ふたつめは、指定したディレクトリ以下を総なめで検索してくれるけど、そのぶん「でんちゃん」で検索させると、ゆっくりお茶が飲めてしまうというスクリプトです(笑)

    Selena Sol's Public Domain CGI Script Archive and Resource に、 Keyword Search 3.0 というスクリプトがあります。
    こちらは日本にもミラーサイトがあるので、そっちから頂くほうがよいでしょう。
    このスクリプトでは、cgi-lib.pl というスクリプトが必要になります。いっしょに配布されているので頂いてきましょう。

    cgiファイルを cp し、perl の位置とファイルモードを確認したら、search_define.pl を自分の環境に合わせて変更します。
    変更しなくちゃいけないのは、検索する場所を指定している、

      $root_web_path = "/net/kragar/serv/ftp/pub/EFF/Newsletters/EFFector/HTML";
      $server_url = "http://www.eff.org/pub/EFF/Newsletters/EFFector/HTML";

    の部分です。上の部分が実際のディレクトリ位置、下の部分は URL で指定します。スクリプトの後半は見栄えを変更するための部分ですね。

    次にスクリプトを呼び出すための form を作りましょう。
    フォームはいっしょに配布されていないのですが、説明を読むとこんな感じでいいようです。ソースを参照してください。

      Search Engine

      日本語可だけどすごい時間がかかります(^.^;)気長にお待ちください。(実際には動きませんよ〜)

      Enter your keywords
      (複数キーワードは半角スペースで区切る):

      Exact Match Search

    euc への変換は、search_engine.cgi を下記のように変更してみました。

      # Define Server specific variables
      require "$lib/search_define.pl";
      #require jcode.pl
      require '$lib/jcode.pl';

      # The following outputs the CGI Header
      print &PrintHeader;
      # Get the form variables
      &ReadParse;
      $keywords = $in{'keywords'};
      &jcode'convert(*keywords,'euc');
      $exact_match = $in{'exact_match'};
      # Take the keywords that were entered and parse them into an array
      # of keywords based on word boundary (\s+ splits on whitespace)
      @keyword_list = split(/\s+/,$keywords);

    はい、検索ボタンを押したら紅茶を入れて、ゆっくり待ちましょう(ほほほっ)
    今回はここまで。おやすみなさい。



4月下旬某日(土)
ここのところ家庭内 WWW Server にばかり凝って Linux らしいことをしていなかったので(笑)今日は Linux らしい話題を。

ひさしぶりに IP Masquerade のホームページに行ってみたら、いままで公式版カーネルには含まれていなかった IP Masquerade 関連の patch が、kernel 2.0.30 で正式に組み込まれたってお話。(ただし、 a minor bug fix patch は出てますね。)さっそく、kernel 2.0.30 と patch を get しました。

いつものとおり /usr/src/ 以下に kernel source を展開して(数字のキリがよかったので、どど〜んとフルセットを入手してきました。たぶんまたしばらく Version Up しないつもりだし。しかし、こういう大きい File を get するときは ISDN ってありがたいよね。専用線ならもっといいけど。)patch を当てます。gz を解いたら

/usr/src で、

    patch -p0 <pachfile.name

とします。ためしたことないけど、

    zcat original.gzip.file | patch -p0

とかでもいいんじゃないんでしょうか。やってることは一緒だから。

kernel を再構築して (ちょっと make menuconfig での選択肢が変わりましたね。ふふぅん。)install します。 この際ついでなので、module の組み込みも、/etc/rc.d/rc.local で insmod を使って起動していたのを、 ip-upmodprobe を使って起動する方法に変更しました。( 「Kernel-Docs modules.txt」を読みましょう(^=^))。ip-downrmmod します。(<なんか、せこいけど)

試しに OS/2 の「はるか」から ping してみると・・・をを、ちゃんと通りますね。ふみふみぃ。大きいファイルの ftp もやっと安心? これでしばらく運用してみることにしましょう。本日はここまで。



1997年4月下旬某日(日)
『らんらん・ぷろじぇくと』と直接関係ないけれど、ホームページのお引越しが完了しました。今後ともご愛顧をお願いします(爆)



1997年5月上旬某日(水)
紫野はアクセスログを眺めていて、ふと、思いました。
「うちのメインページはもしかして『らんらん』かしらん?」 う〜、メインタイトル変えようかしら?(笑)

うちでログをとっているのは、トップページ『らんらん』の目次ぺーじだけなんですが、参照数を眺めてると圧倒的に『らんらん』の方が多いのだよねぇ。 確かに、現状では感想日記系よりリキ入ってるのだけども。

来て頂いてるのは嬉しいのだけど、たぶん、きっと、内容はまちがってるぞ(わははっ)。覚悟しといてくださいねぇ。

よろしかったら、たまにはリアクションください(爆)
『次はこんなことしてみてください』なんてのだと嬉しいです(^=^;) でも、FAX関係はパスね(なぜかというと、今のおうちの配線状況だとFAXの受信と留守電を両立させるにはダイヤルイン契約が必要なのに、紫野にもおぢさんにもそんな財力はないからです。配線を変更する気力/体力も、まだ充実してないのさっ。送信だけなら、なんもサーバー経由にする必要ないからなぁ。とほほ。)ちなみに、うちの X は立ち上るだけっ!。ほんとのほんとに立ち上るだけなので、そっち系も得意じゃないです(<注文多いな。)

ところで、紫野のお次の野望としては、DHCP Server なんてどうかな?と考えているところです。ほかには、/cdrom の自動マウントに amd なんかどうだろ? クライアントから /cdrom を共有させるにも便利そうよね。



メールください 前のページ ホームページへ戻る 次のページ


----------

・ そして、雑談の日々・・・

・ 詳しい検索方法はこちら!

ホームページのなかのフリーワード検索ができます。

Keywords:


・ Please Back to  

----------