namazuでサイト内検索
webサイトでよく見かけるサイト内検索 「namazu」 をインストールして使えるようにします。
namazuのインストール
[root@jintaro ~]# yum -y install namazu
Installed: namazu.i386 0:2.0.17-2.fc8
Dependency Installed: kakasi.i386 0:2.3.4-24.fc8
perl-File-MMagic.noarch 0:1.27-3.fc8
perl-NKF.i386 1:2.0.8b-1.fc8
perl-Text-Kakasi.i386 0:2.04-6.fc8
Complete!
[root@jintaro ~]# yum -y install kakasi-dict
Installed: kakasi-dict.i386 0:2.3.4-24.fc8
Complete!
|
namazuをインストール
kakasi-dictをインストール
|
namazuの設定
mknmzを編集します。(エラーメッセージを出さないようにする)
[root@jintaro ~]# vi /usr/bin/mknmz
#! /usr/bin/perl -w
↓変更
#! /usr/bin/perl
|
mknmzrcを編集
|
インデックスを作成するnknmzコマンドの設定ファイルを編集します。
[root@jintaro ~]# vi /etc/namazu/mknmzrc
# $DENY_FILE = ".*\\.(gif|png|jpg|jpeg)|.*\\.tar\\.gz|core|.*\\.bak|.*~|\\..*|\x23.*";
$DENY_FILE = ".*\\.(gif|png|jpg|jpeg|cgi|pl|log|dat|txt|css)|.*\\.tar\\.gz|core|.*\\.bak|.*~|\\..*|\x23.*";
# $EXCLUDE_PATH = undef;
$EXCLUDE_PATH = "/home/jintaro/public_html/awstats|/home/jintaro/public_html/index.shtml";
|
mknmzrcを編集
←追加
検索対象外ファイルに
cgi,pl,log,dat,txt,css
を追加
←追加
検索対象外ファイルや
ディレクトリを指定
|
検索を行うnamazuコマンドの設定ファイルを編集します。
[root@jintaro ~]# vi /etc/namazu/namazurc
#Replace /home/foo/public_html/ http://www.foo.bar.jp/~foo/
Replace /home/jintaro/public_html/ http://jintaro.com/
#Lang ja
Lang ja_JP.eucJP
|
namazurcを編集
←追加
←追加
|
インデックス用のディレクトリを作成
[root@jintaro ~]# mkdir /var/lib/namazu/index/jintaro
|
jintaro用のインデックス格納ディレクトリ作成
|
コマンドラインからnamazuを実行
まずインデックス作成コマンドを実行します。
[root@jintaro ~]# mknmz /home/jintaro/public_html -O /var/lib/namazu/index/jintaro
検索対象のファイルを調べています...
39個のファイルがインデックス作成の対象として見つかりました
1/39 - /home/jintaro/public_html/cgi/jlink/jlink.shtml [text/html]
2/39 - /home/jintaro/public_html/cgi/postmail/postmail.html [text/html]
3/39 - /home/jintaro/public_html/cgi/postmail/postmail.shtml [text/html]
4/39 - /home/jintaro/public_html/cgi/sunbbs/index.shtml [text/html]
5/39 - /home/jintaro/public_html/cgi/sunbbs/index2.shtml [text/html]
6/39 - /home/jintaro/public_html/cgi/wol/wol.shtml [text/plain]
7/39 - /home/jintaro/public_html/fedora8/f8_awstats.shtml [text/html]
8/39 - /home/jintaro/public_html/fedora8/f8_config.shtml [text/html]
9/39 - /home/jintaro/public_html/fedora8/f8_config_sonota.shtml [text/html]
10/39 - /home/jintaro/public_html/fedora8/f8_dice.shtml [text/html]
11/39 - /home/jintaro/public_html/fedora8/f8_ftp_server.shtml [text/html]
12/39 - /home/jintaro/public_html/fedora8/f8_install.shtml [text/html]
13/39 - /home/jintaro/public_html/fedora8/f8_mail_server.shtml [text/html]
14/39 - /home/jintaro/public_html/fedora8/f8_namazu.shtml [text/html]
15/39 - /home/jintaro/public_html/fedora8/f8_ntp_server.shtml [text/html]
16/39 - /home/jintaro/public_html/fedora8/f8_poderosa_install.shtml [text/html]
17/39 - /home/jintaro/public_html/fedora8/f8_poderosa_key.shtml [text/html]
18/39 - /home/jintaro/public_html/fedora8/f8_ssh2_file.shtml [text/html]
19/39 - /home/jintaro/public_html/fedora8/f8_www_server.shtml [text/html]
20/39 - /home/jintaro/public_html/fedoracore5/fc5_awstats.shtml [text/html]
21/39 - /home/jintaro/public_html/fedoracore5/fc5_config.shtml [text/html]
22/39 - /home/jintaro/public_html/fedoracore5/fc5_config_sonota.shtml [text/html]
23/39 - /home/jintaro/public_html/fedoracore5/fc5_cpan2rpm.shtml [text/html]
24/39 - /home/jintaro/public_html/fedoracore5/fc5_dice.shtml [text/html]
25/39 - /home/jintaro/public_html/fedoracore5/fc5_ftp_server.shtml [text/html]
26/39 - /home/jintaro/public_html/fedoracore5/fc5_install.shtml [text/html]
27/39 - /home/jintaro/public_html/fedoracore5/fc5_mail_server.shtml [text/html]
28/39 - /home/jintaro/public_html/fedoracore5/fc5_poderosa_install.shtml [text/html]
29/39 - /home/jintaro/public_html/fedoracore5/fc5_poderosa_key.shtml [text/html]
30/39 - /home/jintaro/public_html/fedoracore5/fc5_ssh2_file.shtml [text/html]
31/39 - /home/jintaro/public_html/fedoracore5/fc5_wol.shtml [text/html]
32/39 - /home/jintaro/public_html/fedoracore5/fc5_www_server.shtml [text/html]
33/39 - /home/jintaro/public_html/first/first.shtml [text/html]
34/39 - /home/jintaro/public_html/first/linux_howto.shtml [text/html]
35/39 - /home/jintaro/public_html/linkfree.shtml [text/html]
36/39 - /home/jintaro/public_html/server/apache_auth.shtml [text/html]
37/39 - /home/jintaro/public_html/server/mail_relay_test.shtml [text/html]
38/39 - /home/jintaro/public_html/server/phpini.shtml [text/html]
39/39 - /home/jintaro/public_html/test/port2.html [text/html]
インデックスを書き出しています...
[基本]
日付: Mon Mar 3 18:49:12 2008
追加された文書の数: 39
サイズ (bytes): 218,343
合計の文書数: 39
追加キーワード数: 3,583
合計キーワード数: 3,583
わかち書き: module_kakasi -ieuc -oeuc -w
経過時間 (秒): 11
ファイル/秒: 3.55
システム: linux
Perl: 5.008008
Namazu: 2.0.17
|
インデックス作成コマンド実行
|
「vsftpd」というキーワードで検索してみます。
[root@jintaro ~]# namazu vsftpd /var/lib/namazu/index/jintaro/
検索結果
参考ヒット数: [ vsftpd: 2 ]
検索式にマッチする 2 個の文書が見つかりました。
1. Fedora8 FTPサーバーの構築 〜自(己満足)宅サーバー〜 (スコア: 47)
著者: 不明
日付: Sun, 24 Feb 2008 16:24:00 +0900
vsftpdのインストール vsftpdの設定 サーバー証明書の作成 vsftpdの起動 その他の設定 備考
FTPサーバーの構築 ここではFTPサーバー「vsftpd」をインストールして使えるようにします。
http://jintaro.com/fedora8/f8_ftp_server.shtml (6,605 bytes)
2. FTPサーバーの構築 〜自(己満足)宅サーバー〜 (スコア: 47)
著者: 不明
日付: Sun, 17 Feb 2008 17:26:00 +0900
vsftpdのインストール vsftpdの設定 サーバー証明書の作成 vsftpdの起動 その他の設定 備考
FTPサーバーの構築 ここではFTPサーバー「vsftpd」をインストールして使えるようにします。
http://jintaro.com/fedoracore5/fc5_ftp_server.shtml (6,611 bytes)
現在のリスト: 1 - 2
|
vsftpdというキーワードで
namazuコマンド実行
←2件ヒット
|
webから検索出来るようにする
namazu.cgiをインストールしてwebからアクセスできる場所にコピーします。
[root@jintaro ~]# yum -y install namazu-cgi
Installed: namazu-cgi.i386 0:2.0.17-2.fc8
Complete!
[root@jintaro ~]# cp /var/www/cgi-bin/namazu.cgi /home/jintaro/public_html/cgi/namazu.cgi
|
namazu-cgiをインストール
namazu.cgiをwebからアクセスできる
場所にコピー
(/var/www/cgi-bin/がwebからアクセス
出来る場合は必要なし)
|
ヘッダファイルとフッタファイルを編集します。
namazuが扱う(吐き出す)ファイル等はすべてeuc-jpで書かれています。
編集する場合はeuc-jpで保存しないと文字化けします。
[root@jintaro ~]# vi /var/lib/namazu/index/jintaro/NMZ.head.ja
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=euc-jp">
<!-- <input type="hidden" name="idxname" value="foobar"> -->
↓変更
<input type="hidden" name="idxname" value="jintaro">
<a href="{cgi}">[検索方法]</a>
↓変更
<a href="{cgi}?idxname=jintaro">[検索方法]</a>
[root@jintaro ~]# vi /var/lib/namazu/index/jintaro/NMZ.foot.ja
<address>
<!-- ADDRESS -->
<a href="mailto:webmaster@unknown">webmaster@unknown</a>
<!-- ADDRESS -->
</address>
|
ヘッダファイルを編集
←追加
文字化け対策
コメント解除して
インデックスがある
ディレクトリを指定
インデックスがある
ディレクトリを指定
フッタファイルを編集(任意)
←削除
アドレスを表示しないようにする
|
ブラウザから http://サーバー名/cgi/namazu.cgi?idxname=jintaro へアクセスして
検索ページが表示されることを確認、実際にキーワードを入れて検索してみる。
htmlページに以下の様にフォームを設置しても直接検索できます。
<FORM action="/cgi/namazu/namazu.cgi">
サイト内検索
<INPUT type="text" name="query" size="15">
<INPUT type="submit" name="submit" value="検索">
<INPUT type="hidden" name="max" value="20">
<INPUT type="hidden" name="result" value="normal">
<INPUT type="hidden" name="sort" value="score">
<input type="hidden" name="idxname" value="jintaro">
</FORM>
|
←インデックスのあるディレクトリ
|
インデックス作成&ごみインデックス削除スクリプト作成
mknmzでインデックスを作成、gcnmzで削除されたファイルのインデックスを削除するスクリプトを作成して
自動実行するようにします。
[root@jintaro ~]# vi /root/mknmz-jintaro.sh
#!/bin/bash
mknmz /home/jintaro/public_html -O /var/lib/namazu/index/jintaro
gcnmz -b /var/lib/namazu/index/jintaro
[root@jintaro ~]# chmod 700 mknmz-jintaro.sh
[root@jintaro ~]# crontab -e
0 0 * * * /root/mknmz-jintaro.sh
|
スクリプト作成
作成したスクリプトに
実行権を付ける
crontab編集
←追加
毎日0:00にスクリプトが
実行される様にする
|
備考
インデックスを1から作り直す場合は
- /var/lib/namazu/index/jintaro の中の編集したテンプレートファイルをバックアップ
- /var/lib/namazu/index/jintaro の中身をすべて削除
- mknmz /home/jintaro/public_html -O /var/lib/namazu/index/jintaro を実行
- バックアップしたテンプレートファイルを元に戻す
|