[[Namazu 2]] #contents *Namazu2 error [#hce602be] **Namazu2のインストール [#q6e7c224] メールサーバでNamazuをつかうため、新規にインストールする % portinstall japanese/namazu2 とするが、設定ファイルを用意して mknmz するも、 % mknmz -a /usr/local/www/data -f /usr/local/etc/namazu/mknmzrc -O /usr/local/var/namazu/index Can't locate Text/Kakasi.pm in @INC (@INC contains: /usr/local/share/namazu/filter /usr/local/share/namazu/pl . /usr/local/lib/perl5/5.8.8/BSDPAN /usr/local/lib/perl5/site_perl/5.8.8/mach /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.8/mach /usr/local/lib/perl5/5.8.8) at /usr/local/bin/mknmz line 953. といわれてしまう。Text/Kakasi.pm が無いと言っている模様。なので ***kakasiをインストール [#e3d625b9] % portinstall japanese/kakasi するもエラーは変わらず。なので、 **kakasiを手動でインストール [#vccbd323] するために、http://www.daionet.gr.jp/~knok/kakasi/ から Text-Kakasi-1.05.tar.gz を取ってきて /root/bin/Text-Kakasi-1.05.tar.tar として、 % cd /root/bin/ % tar xvfzp Text-Kakasi-1.05.tar.tar % cd Text-Kakasi-1.05 % perl Makefile.PL % make % make install Installing /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/Text/Kakasi/Kakasi.so Installing /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/Text/Kakasi/Kakasi.bs Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Installing /usr/local/lib/perl5/site_perl/5.8.8/mach/Text/Kakasi.pm Installing /usr/local/lib/perl5/5.8.8/man/man3/Text::Kakasi.3 Writing /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/Text/Kakasi/.packlist FreeBSD: Registering installation in the package database Appending installation info to /usr/local/lib/perl5/5.8.8/mach/perllocal.pod % rehash として、やっとOK・・・ **インデクス作成 [#jf88876d] ***インデクス作成ツール設定 [#t168fdb4] cp /usr/local/etc/namazu/mknmzrc-sample /usr/local/etc/namazu/mknmzrc chmod 644 /usr/local/etc/namazu/mknmzrc vi /usr/local/etc/namazu/mknmzrc $ADDRESS = 'postmaster@mail.smb.net'; $DENY_FILE = ".*\\.(gif|png|jpg|jpeg)|.*\\.tar\\.gz|core|.*\\.bak|.*~|\\..*|\x23.*"; <= コメント解除(gif、png、jpg、jpeg等を検索対象としない) Mailmanの設定ファイルでは、さらに、gz txt も必要ないので $DENY_FILE = ".*\\.(gif|png|jpg|jpeg|gz|txt)|.*\\.tar\\.gz|core|.*\\.bak|.*~|\\..*|\x23.*|(data|subject|author|thread).html"; $NKF = "module_nkf"; $KAKASI = "module_kakasi"; $CHASEN = "module_chasen"; $CHASEN_NOUN = "no"; $WAKATI = $KAKASI; ***indexの作成 [#a27aeeca] mkdir /usr/local/var/namazu/index/[Mlist_Name] mknmz -a /usr/local/www/data -f /usr/local/etc/namazu/mknmzrc -O /usr/local/var/namazu/index/[Mlist_Name]/ Mailman保存書庫の検索(abc_MLの場合) mkdir /usr/local/var/namazu/index/abc mknmz -a /usr/local/mailman/archives/private/abc -f /usr/local/etc/namazu/mknmzrc -O /usr/local/var/namazu/index/abc/ Mailmanの場合、database ディレクトリがインデックスされる必要はないので、 mknmz '--exclude=/usr/local/mailman/archives/private/tfc/database/' -a /usr/local/mailman/archives/private/abc -f /usr/local/etc/namazu/mknmzrc -O /usr/local/var/namazu/index/abc/ で実行すると 705/2739 - /usr/local/mailman/archives/private/xxx/2007-October.txt [message/rfc822] perl in free(): error: junk pointer, too high to make sense Abort (core dumped) 同じところでエラー・・・ dump record data to NMZ.bug.info (step: 2)...dump record data to NMZ.bug.info (step: 2)...The "negative number" problem occurred. Writing index files... [Base] Date: Sun Nov 18 09:12:23 2007 Added Documents: 18,578 Size (bytes): 143,325,694 Total Documents: 18,578 Added Keywords: 861,252 Total Keywords: 861,252 Wakati: module_kakasi Time (sec): 1,929 File/Sec: 9.63 System: freebsd Perl: 5.008008 Namazu: 2.0.16 Looking for indexing files... 36 files are found to be indexed. 1/36 - /usr/local/www/data/MRTG/cpu.html [text/html] 2/36 - /usr/local/www/data/MRTG/cpu.log [text/plain] 3/36 - /usr/local/www/data/MRTG/cpu.old [text/plain] : : : : 35/36 - /usr/local/www/data/webalena.html [text/html] 36/36 - /usr/local/www/data/xtemplate-DTD4.0-T [text/html] Writing index files... [Base] Date: Sun Nov 18 07:12:36 2007 Added Documents: 36 Size (bytes): 1,006,992 Total Documents: 36 Added Keywords: 7,551 Total Keywords: 7,551 Wakati: module_kakasi Time (sec): 8 File/Sec: 4.50 System: freebsd Perl: 5.008008 Namazu: 2.0.16 **CGI Setting [#d6085622] cp /usr/local/libexec/namazu.cgi /usr/local/www/cgi-bin/ cp /usr/local/etc/namazu/namazurc-sample /usr/local/etc/namazu/namazurc chmod 644 /usr/local/etc/namazu/namazurc vi /usr/local/etc/namazu/namazurc #Replace /home/foo/public_html/ http://www.foo.bar.jp/~foo/ ↓ Replace /usr/local/www/data/ http://piano.smb.net/ <= 検索対象ディレクトリの置換 #Lang ja ↓ Lang ja_JP.eucJP <= 日本語化 vi /usr/local/var/namazu/index/piano/NMZ.head.ja <= ヘッダファイル編集 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP"> <= 追加(文字化け対策) <!-- <input type="hidden" name="idxname" value="foobar"> --> ↓ <input type="hidden" name="idxname" value="piano"> <= インデックス指定 <a href="{cgi}">[検索方法]</a> ↓ <a href="{cgi}?idxname=piano">[検索方法]</a> <= インデックス指定 http://piano.smb.net/cgi-bin/namazu.cgi?idxname=piano http://piano.smb.net/cgi-bin/namazu.cgi?idxname=core_sandbox ***Mailman書庫検索用設定 [#c1d07ed2] 検索画面をそれぞれ専用のnamazurc中にReplaceを書いて動作を変更させようとしたが、今のところ~ /usr/local/etc/namazu/namazurc~ 以外のファイル設定での起動法が解らないので、以下のnamazurc-abcはnamazurcを書き換えることで対処中^^; cp /usr/local/etc/namazu/namazurc-sample /usr/local/etc/namazu/namazurc-abc chmod 644 /usr/local/etc/namazu/namazurc-abc vi /usr/local/etc/namazu/namazurc-abc #Replace /home/foo/public_html/ http://www.foo.bar.jp/~foo/ ↓ Replace /usr/local/mailman/archives/ http://piano.smb.net/mailman/ <= 検索対象ディレクトリの置換 #Lang ja ↓ Lang ja_JP.eucJP <= 日本語化 vi /usr/local/var/namazu/index/tfc/NMZ.head.ja <= ヘッダファイル編集 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP"> <= 追加(文字化け対策) <!-- <input type="hidden" name="idxname" value="foobar"> --> ↓ <input type="hidden" name="idxname" value="tfc"> <= インデックス指定 <a href="{cgi}">[検索方法]</a> ↓ <a href="{cgi}?idxname=tfc">[検索方法]</a> <= インデックス指定 **サイト内に設置する場合 [#o83bebbc] ***サイト内に検索用のFORMを設置する場合、設置したい場所に以下の内容を記述。 [#b6765df0] <FORM method="get" action="/cgi-bin/namazu.cgi">サイト内検索 <INPUT type="text" name="query" size="20"> <INPUT type="submit" name="submit" value="Search"> <INPUT type="hidden" name="idxname" value="piano"> <INPUT type="hidden" name="max" value="20"> <INPUT type="hidden" name="result" value="normal"> <INPUT type="hidden" name="sort" value="score"> </FORM> **Mailman Mailinglistの総合案内の編集 [#cfe4fded] Mailman の管理画面で「リスト設定情報の閲覧・編集」を開き、 <p> このメーリングリストに投稿された過去のメールは, <MM-Archive><MM-List-Name> 保存書庫</MM-Archive>をご覧下さい. <br><a href="http://piano.smb.net/cgi-bin/namazu.cgi?idxname=tfc">検索のページはこちら</a> ← この行を追加 <MM-Restricted-List-Message> **インデックスの自動作成&不要データ削除 [#p7f05377] vi ~/namazu.sh <= インデックスの自動作成&不要データ削除スクリプト作成 リモートからWinSCPとPuttyで操作する場合は、 touch /root/bin/namazu.sh として、ファイルを開き、以下を書き込む #!/bin/sh /usr/local/bin/mknmz -qa /usr/local/www/data -f /usr/local/etc/namazu/mknmzrc -O /usr/local/var/namazu/index/piano/ /usr/local/bin/gcnmz -q /usr/local/var/namazu/index/piano/ Mailmanの保存書庫では #!/bin/sh /usr/local/bin/mknmz -q '--exclude=/usr/local/mailman/archives/private/tfc/database/' -a /usr/local/mailman/archives/private/tfc -f /usr/local/etc/namazu/mknmzrc -O /usr/local/var/namazu/index/tfc/ /usr/local/bin/gcnmz -q /usr/local/var/namazu/index/tfc/ chmod 755 ~/namazu.sh <= スクリプトに実行権限付加 ***スクリプトの自動実行 [#ad14a94d] vi /etc/crontab <= 設定ファイルの編集 00 03 * * * root /root/bin/namazu.sh <= 追加(毎日3:00にスクリプト実行)