次にNamazuの設定の解説に移ります。Namazuの設定は基本的に「C:\namazu\etc\namazu」ディレクトリに格納されている「mknmzrc」と「namazurc」を編集していきます。ここでは、「namazurc」の必要箇所のみに絞って解説します。以下を参考にして「namazurc」を編集していってください。
■「namazurc」の編集
「C:\namazu\etc\namazu」にある「namazurc」を開いてください。なお、「namazurc」を編集する際は、いつ間違えてもいいようにバックアップをとっておいた方が良いでしょう。
■NamazuをCGIとして使う
次に、上記で編集した「namazurc」ファイルをWWWサーバーで指定してある「cgi-bin」ディレクトリへ「
.namazurc」というファイル名に変更して保存します。この時、ファイル名に「.」(ドット)を付け忘れないように注意してください。
保存し終わったら「C:\namazu\libexec」ディレクトリに格納されている「
namazu.cgi.exe」ファイルも「cgi-bin」ディレクトリにコピーします。なお、後述のWebサイト全文検索を行う前にはWWWサーバーの設定で「cgi-bin」ディレクトリのパスを指定しておいてください(必ずしも必要な設定ではありません)。参考までにApacheの場合は「httpd.conf」を開いて、
|
ScriptAlias /cgi-bin/
"F:/www/public_html/cgi-bin" |
|
のように「cgi-bin」ディレクトリのパスを記述しておきます。
ここまでの操作で「cgi-bin」ディレクトリは以下のように2つのファイルが格納されているはずです。
■インデックスを作成する
それでは、「mknmzrcコマンド」を利用してインデックスを作成する作業に移ります。コマンドプロンプトを起動して以下のように入力してください。
|
mknmz -O C:\namazu\var\namazu\index
F:\www\public_html |
|
「-O」オプションスイッチは以降に続く文字列(ここではC:\namazu\var\namazu\indexとF:\www\public_html)をインデックス作成ディレクトリとインデックス対象ディレクトリとして指定するために使用します。ここでは、インデックスファイルの作成先を「C:\namazu\var\namazu\index」とし、インデックスの対象ディレクトリを「F:\www\publuic_html」(ドキュメントルート)として指定しています。各自、インデックスの作成先と作成対象を変更したい場合は、適宜パスを変更してください。
以下のように表示されれば正常にインデックスが作成されたことになります(尚、ここでは最小限度のディレクトリに絞ってインデックスを作成しています)。ここで指定した「C:\namazu\var\namazu\index」ディレクトリの中身を確認してもらえばわかると思いますが、「NMZ.」で始まるファイルがたくさん作成されたはずです。以上のことが確認できたら実際にブラウザで検索をかける作業に移ります。
C:\>mknmz
-O c:\namazu\var\namazu\index f:\www\public_html
検索対象のファイルを調べています...
7個のファイルがインデックス作成の対象として見つかりました
1/7 - /f|/www/public_html/link_top.html [text/html]
2/7 - /f|/www/public_html/report.html [text/html]
3/7 - /f|/www/public_html/index.html [text/html]
4/7 - /f|/www/public_html/result1.shtml [text/html]
5/7 - /f|/www/public_html/template.shtml [text/html]
6/7 - /f|/www/public_html/template2.html [text/html]
7/7 - /f|/www/public_html/env_chk.shtml [text/html]
インデックスを書き出しています...
[基本]
日付: Sat Jul 27 14:25:53 2002
追加された文書の数: 7
サイズ (bytes): 122,194
合計の文書数: 7
追加キーワード数: 1,866
合計キーワード数: 1,866
わかち書き: module_kakasi -ieuc -oeuc -w
経過時間 (秒): 11
ファイル/秒: 0.64
システム: MSWin32
Perl: 5.006001
Namazu: 2.0.10
|
まず、確認のために最初は簡単なフォームを作成して試してみます。以下のソースをコピー&ペーストして「cgi-bin」ディレクトリより1階層上のディレクトリに「search.html」というファイル名で保存します。ファイル名は自由につけて結構です。
<html>
<body bgcolor="#FFFFFF" text="#000000">
<form method="get" action="cgi-bin/namazu.cgi.exe">
<input type="text" name="query"
size="15" maxlength="50">
<input type="submit" name="submit"
value="検索">
</form>
</body>
</html> |
|
「http://XXX/searh.html」と入力して現れたフォーム画面で適当な単語を入力し、「検索」をクリックします。
以下のように検索結果が表示されたでしょうか?なお、Namazu検索画面だけならば「http://XXX/cgi-bin/namazu.cgi.exe」で表示させることができます(XXXは任意のホスト名)。
■リンクをクリックしてもリンク先へ行けない(>_<)
上記のような検索画面が表示されたにも関わらず、リンク部分をクリックしてもリンク先へ行けないで悩んでいる人もいるかと思います。その場合は、リンク先のURLをみてもらえばわかるとおり、「
/f|/www/public_html/archi/template/template.shtml」のように「
/f|」がついていないでしょうか?これはローカルにあるディレクトリのパスが正常にホスト名(例:http://win.kororo.jp)に置換されていないためで、当然リンク先へ行くことはできません。この原因は大抵の場合、「.namazurc」の「Replace」の設定が間違って記述されているためです。「.namazurc」を開いて以下の文章を探してください。
|
Replace /f\|/www/public_html/
http://win.kororo.jp/ |
|
原因1: |
「/f\|/」の部分のドライブの文字が大文字、あるいは小文字になっている。Replaceでは大文字の小文字の区別をきっちりと行うので、ドライブの文字を大文字で記述するか小文字で記述するかは非常に重要なところです(大文字か小文字かは環境によって異なります)。したがって、小文字を指定して不可能な場合は大文字で、大文字を指定して不可能な場合は小文字で記述するようにしてください。
|
原因2: |
「/f|/」のように「\」が抜けていると正常に置換処理をしてくれません。きちんと「/f\|/」のように「\」を用いてエスケープ処理をしておく必要があります。「エスケープする」とは、その文字の前にエスケープ文字「\」を挿入することを言います。 |