« Restricted Shell SSH2 WinSCP puTTYgen | メイン | TrackBack spam Plugin mod_rewrite htaccess »

2005年01月30日

mt-search.cgi vs Namazu mknmz cron ジョブ

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 などを適宜編集します。

[重要なお知らせ] 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 がライブラリの関係で動作しなくなることが確認できているため」、アナウンス後、更新を検討中とのことです。

投稿者 mvtp : 2005年01月30日 14:06

トラックバック

このエントリーのトラックバックURL:
trackbacklink 50

コメント

コメントしてください

サイン・インを確認しました、 . さん。コメントしてください。 (サイン・アウト)

(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)


情報を登録する?




 Modified by Toshiaki YAMAMURA    Powered by Movable Type
 ■シックス・アパート株式会社より「個人用ライセンス」を取得し、Movable Type にて情報提供中です. ■ハンドル名とメールアドレスを入力すると、自由にコメント投稿できます. 但し、15歳未満のお子供は必ず保護者の指導・監督下で行って下さい. ■本ウエブログでは、サイト管理・運営者が著しく不利益と判断するコメントや他人を誹謗中傷するコメントは、直ちに削除いたします.