apache側の設定もしなければならなかったので、結構大変でしたが、このblogを見ればいつでも(自分が)設定できるように簡単に書いたつもりです。
前提としてWEBサーバーapacheは既にインストールされている物とします。apacheのインストール・設定の仕方は
ここをご覧下さい。
1)必要なソフトウェアをダウンロード
・namazuを公式サイトからダウンロード
http://www.namazu.org/windows/
※[ダウンロード]のforWIN32の最新版(zip書庫版)を落としてきます。
・kakasiを公式サイトからダウンロード
http://www.namazu.org/windows/
※[必要なソフト]のところにあるzipを落としてきます。
・ActivePerlを公式サイトからダウンロード
http://www.activestate.com/Products/ActivePerl/
※[DOWNLOAD]リンクをクリックし、少しの情報を入力した後ダウンロードです。
※安定バージョンは5.8ではなく、5.6.1だそうです(2005/04/06現在)
上記サイトにはOldVer.も置いてあるので、それを落としましょう。
2)必要なソフトウェアをインストール
・namazuをインストール
nmz2012.exe をダブルクリック、解凍先=導入先となるのでc:/namazuを指示し実行
数字(2012)はバージョンなので、変わる可能性があります。
・kakasiをインストール
解凍して、kakashiフォルダをc:/にコピー。
c:/kakasi/binというフォルダ構成になるようにします。
・ActivePerlをインストール
全部デフォルトでインストールします。
3)設定
ここでは便宜上、apacheはc:apache2にインストールされているものとして記述します。
apacheをデフォルトインストールした場合はc:apache2をc:Program FilesApache GroupApache2に変更して下さい
・namazuの実行モジュールと設定ファイルを、apacheのcgi-binにコピー
以下のバッチファイルを作成して実行すればOK。
rem ------------ ↓ここから↓--------------------------------------------------
@echo
copy c:namazulibexecnamazu.cgi.exe "c:Apache2cgi-binnamazu.cgi.exe"
copy C:namazuetcnamazunamazurc "c:Apache2cgi-bin.namazurc"
rem ------------ ↑ここまで↑--------------------------------------------------
※namazurcというファイルは頭に.をつけないといけないことに注意。エクスプローラでは上記作業はできません。
・インデックスを作成
通常DBは、検索の度に全ファイルを見なくても良いように、予めインデックスを作成しておきます。
以下の様なバッチにしてしまうと次回から楽です。検索対象のファイルが増える度にこれを実行すればOK。
一般的なWEBサーバーでは一定時間に一度こういうバッチを実行しているみたいです。
rem ------------ ↓ここから↓--------------------------------------------------
@echo off
mknmz -O C:namazuvarnamazuindex "C:Apache2htdocs"
rem ------------ ↑ここまで↑--------------------------------------------------
※上記例だと、apache2のhtdocs以下にある全ての(サブフォルダ含む)ファイルのインデックスが
namazuのindexフォルダ以下に作成されます。
・apache/cgi-bin/.namazurcを編集
namazuの動作設定をします。以下のように変更して下さい。
変更前)# Index C:namazuvarnamazuindex
変更後)Index C:namazuvarnamazuindex
変更前)# #Replace /home/foo/public_html/ http://www.foo.bar.jp/~foo/
変更後)Replace /[Dd]|/data/ http://127.0.0.1/data/
変更前)# EmphasisTags "
変更後)EmphasisTags "
※Replaceの説明は必要なのでしておきます。
namazuは、検索結果をhtmlで表示するのですが、アドレスをローカルな表示法(c:apache..)で表示してしまいます。
それをWEBブラウザ用の表記(http://......)に置き換えるルールを記述します。
なお、この場合、d:data は、WEBサーバからアクセスできる場所でなければなりません。
このためには、d:data がWEBサーバのドキュメントルート以下にあるか、そうでなければ、d:data が WEBサーバの
エイリアス機能でエイリアス名 data に対応する場所として定義されている必要があります。
エイリアスをきるには、apache2/conf/httpd.confに以下のように記述します。
# Alias /icons/ "C:/Program Files/Apache Group/Apache2/icons/"
Alias /php/ "D:/PHP/"
こうすると「http://127.0.0.1/php/」でd:/PHP/を指すようになるんだそうです。
4)動作確認
・WEBサーバーのhtdocs直下のindex.htmlにnamazu.cgiへのリンクを埋め込む
namazu検索へ
・ブラウザを起動して、アドレス欄に「http://127.0.0.1」と打ち込む
あと、忘れないようにnamazuの特徴をメモ書きしておきます。
・テキストでもバイナリでも検索OK
・日本語のパス・ファイル名はNG(URLエンコードされるため。中身が日本語なのはOK)
・ローカルファイル検索には向いていない。基本サーバー上で動く物。(file://がうまく動作しないから)
以上です。結構大変でした。
同僚のスーパーSEの方に色々教えていただき、やっとここまでこれました。ありがとうございました!