[追記 2006/12/31] namazu.cgi をFTPで転送するとき、Binary バイナリーモードです(通常のcgiファイルで用いる ASII アスキーモードでは内部サーバ・エラーとなります)。
Movable Type デフォルトのサイト内検索 Search は、とても簡便なのでよく利用されているようです。しかし、search_templates ディレクトリにある検索テンプレート comments.tmpl, default.tmpl を独自に変更した私の場合、Movable Type の(マイナー)バージョンアップの作業が増えるにつれて、MT の "夾雑物" 的存在となりました ( しかも、もともと高機能ではありませんし)。
よって、高速な全文検索システム 「Namazu」 のパワーを借りることにしました。以下は、MTで利用する際の tips です。
なお、必ずエントリーの最下段 [更新情報] をご一読下さい。また、ダイナミックページ, html 以外のページ形式 はアクセスできないようです。
(1) ホームディレクトリのトップ内にディレクトリ namazu, namazu内にファイル namazu.cgi および make_index.sh が存在することを確認します。ファイルを誤って削除した場合、ディレクトリのみ作成します。
(2) Movable Type 用のオリジナル(独自)ドメイン内に namazu.cgi のコピーを設置するディレクトリを作成します。
(3) 上記(2)のディレクトリ内に自動生成される設定ファイル .namazurc がブラウザでアクセスされないように .htaccess ファイルをアップロードします。
http://www.namazu.org/FAQ.html.ja#dot-namazurc
(4) 日本語全文検索システム Namazu は、Xrea.com さんのサーバ内 /usr/local/libexec/ にデフォルトでインストールされていますので、導入法
http://sb.xrea.com/showthread.php?t=4267&goto=nextnewest
を実行します (インデックス用ディレクトリ namazu は、ブラウザではアクセスできないホームディレクトリのトップに作成されますので、比較的安全です)。
(4) インデックス作成 mknmz を cron ジョブで実行し、インデックスファイルを定時的に更新できるように、スクリプトを作成し、管理ページで設定します ( cron ジョブの設定法については、当ブログ内の関連エントリーをご覧下さい)。
(例: cron ジョブ用スクリプト名 cron123.sh )
ユーザーID: user-id
オリジナルドメイン名: example.com
Namazu インデックスの対象:
アーカイブ archives ディレクトリ内のファイルで、文書形式 text/html に限る。
ブログページからリンクする namazu.cgi の設置ディレクトリ:
http://www.example.com/archives/search/ (注: ホームディレクトリのトップにあるディレクトリ namazu ではありません)。
#!/bin/sh
cd /virtual/user-id/public_html/www.example.com/archives/search/
cp -uf /usr/local/libexec/namazu.cgi ./;chmod 700 *.cgi;
cd /virtual/user-id/namazu/
/usr/local/bin/mknmz -V --media-type='text/html' --indexing-lang=ja /virtual/user-id/public_html/www.example.com/archives/ > /virtual/user-id/namazu/make_index.log
rm -f /virtual/user-id/namazu/namazu.cgi;cp -uf /usr/local/libexec/namazu.cgi /virtual/user-id/namazu/;chmod 700 *.cgi;
echo update!
exit
(注:)2つのディレクトリに namazu.cgi をコピー cp -オプションuf するコマンドは、Namazu のバージョンアップに対応したものです。もし、アーカイブページが多く、インデックス生成のタスクに時間がかかるようであれば、コマンド cp を含む行をコメントアウトする (ないし、mknmzによるファイル更新をサーバ負荷のできるだけ少ない時刻に設定する) などの変更をおすすめします。
(5) namazu.cgi のコピーが自動生成されたディレクトリ (2) 内の make_index.cgi を削除します。cgi 属性の変更は無効ですので、リネーム.cgi では危険です。
(6) [MT]/mt-search.cgi の属性を 600 に変更し、使用停止とします。
(7) MT テンプレート メインページの「サイト内の検索」フォームを namazu.cgiのコピー(2) へのリンクに変更します。
(例) http://www.example.com/archives/search/namazu.cgi
(8) ホームディレクトリのトップディレクトリ namazu 内の NMZ.head.ja NMZ.foot.ja などを適宜編集します。
[例: cron 時に自動更新されるようにスクリプトを追加します]
[更新情報 Date: Wed Mar 14 16:43:01 2007]
バージョン ⇒ Namazu: 2.0.17
cronジョブによりpdf,doc,xls,pptなどのファイルをindexingするとき、文書フィルタの$PATHをshellscript内で指定しなければなりません。
エントリー「namazu-cron-pdf,doc,xls,ppt-$PATHと文書フィルタ」
http://www.osbsd.net/2007/05/namazumknmzrc_654b.html
をご覧下さい。
[旧バージョンについて] 2005/1/30現在, Xrea.com さんのサーバで稼働中の Namazu は Version 2.0.13 であり、
cross-site scripting 脆弱性
の問題があります。よって、Xrea.com さんのサポート宛て、バージョンアップ (2.0.14) を依頼するとともに、一時的に従来の検索システムにて運用します。
[回答 1 Feb 2005 01:44:31 +0900] 「バージョンアップを行いますと、古いバージョンのバイナリ: namazu.cgi がライブラリの関係で動作しなくなることが確認できているため」、アナウンス後、更新を検討中とのことです。

最近のコメント