NamazuのCGI版ではカスタマイズに限界があります。そこで、PHPを使用してNamazu全文検索システムを導入すれば無限のカスタマイズが可能となります。PHPはHTMLの中に埋め込むことができるという性質上、ヘッダー、フッター、ボディにとらわれずHTML内であればどこにでも設置することができるようになります。
まず、NamazuをPHPで使うためにはNamazu拡張モジュールをダウンロードしてくる必要があります。最新のファイルは以下のサイトよりダウンロードしてきてください。ファイル名は「php4_namazu-2.1.0」です。また、当ページの記述は「TAG'S
WEBPAGE」の記述文を脚色させていただきました。
ダウンロードしてきた「php4.2.x-namazu-2.1.0-win.zip」を解凍すると以下のような「README.en」「README.ja」「php_namazu.dll」という3つのファイルが展開されます。「README.ja」をテキストエディタで開くとPHP用のNamazu関数について詳しく説明されているのでカスタマイズする際には参考にすると良いでしょう。
■php_namazu.dllのコピー
拡張モジュールを追加するために、「
php_namazu.dll」をPHPディレクトリ内の「/php/extensions」ディレクトリにコピーします。
■「php.ini」の編集
次に、システムフォルダ内にある「php.ini」をテキストエディタで開き、以下の記述を追記します。なお、以下の記述は「extensions」フォルダ内にある「php_namazu.dll」ファイルをモジュールとして追加するという意味を表しています。
|
extension=php_namazu.dll |
|
Namazu関数を有効にするために、「php.ini」に以下の記述を追記します。
|
namazu.debugmode
= Off
namazu.lang = ja_JP.SJIS
namazu.loggingmode = On
namazu.sortmethod = field:from
namazu.sortorder = ascending |
|
◎Namazu関数の説明
■Namazuモジュールが組み込まれたかどうかの確認
それでは、最後に実際にNamazu拡張モジュール「php_namazu.dll」が組み込まれたかどうかの確認を行います。テキストエディタを開いて、以下のように記述し、「test.php」というファイル名でドキュメントルートに保存し、ブラウザでアクセスしてみます。
|
<?php
echo phpinfo();
?> |
|
以下のような記述が表示されれば、PHP用のNamazu拡張モジュールが正常に組み込まれていることになります。
あとは、いわきり氏(
http://datula.mio.org/~iwakiri/php_nmz_sample.tar.gz)によって公開されているサンプルソースを「namazu.cgi」の代わりに使用して自分用にカスタマイズしていけばPHP版のNamazuの設定は完了です。
それでは、次にNamazuのインデックス作成時に拡張子「.php」をインデックス作成対象にする設定を行います。Namazuはデフォルトでは拡張子「.html」と「.shtml」のみしかインデックスの作成対象になっていません。そこで、拡張子「.php」もインデックスの作成対象とするために「namazu/etc/namazu」ディレクトリ内にある「mknmzrc」ファイルを編集する必要があります。では、「mknmzrc」をテキストエディタで開いて以下のような記述を探してください。
|
# $ALLOW_FILE = ".*\\.(?:$HTML_SUFFIX)|.*\\.txt"
. # HTML, plain text
# "|.*\\.gz|.*\\.Z|.*\\.bz2" . # Compressed
files
# "|.*\\.pdf|.*\\.ps" . # PDF, PostScript
# "|.*\\.tex|.*\\.dvi" . # TeX, DVI
# "|.*\\.rpm|.*\\.deb" . # RPM, DEB
# "|.*\\.doc|.*\\.xls|.*\\.ppt" . # Word,
Excel, PowerPoint
# "|.*\\.j[sabf]w|.*\\.jtd" . # Ichitaro 4,
5, 6, 7, 8
# "|\\d+|[-\\w]+\\.[1-9n]"; # Mail/News, man |
|
まず、一行目の「# $ALLOW_FILE = ~」の行頭の
コメント「#」をはずします。そして最後の行に「
"|.*\\.php";
」を加えます。結果的に以下のようにしてください。これで拡張子「.php」がインデックス作成対象として追加されました。あとは「mknmz」コマンドを使用して通常どおりに、インデックスを作成するだけです。
|
$ALLOW_FILE = ".*\\.(?:$HTML_SUFFIX)|.*\\.txt"
. # HTML, plain text
# "|.*\\.gz|.*\\.Z|.*\\.bz2" . # Compressed
files
# "|.*\\.pdf|.*\\.ps" . # PDF, PostScript
# "|.*\\.tex|.*\\.dvi" . # TeX, DVI
# "|.*\\.rpm|.*\\.deb" . # RPM, DEB
# "|.*\\.doc|.*\\.xls|.*\\.ppt" . # Word,
Excel, PowerPoint
# "|.*\\.j[sabf]w|.*\\.jtd" . # Ichitaro 4,
5, 6, 7, 8
# "|\\d+|[-\\w]+\\.[1-9n]"; # Mail/News, man
"|.*\\.php"; # PHP |
|