Namazu with PHP

PHPから使うNamazuの設定、および動的生成ページのインデックス法。

Namazuインストール

  1. PerlのFile::MMagicをインストール。

    perl -MCPAN -e shell
    cpan> install File::MMagic
    
  2. nkfはインストール済みなので割愛。
  3. Kakasiをインストール。

    wget http://kakasi.namazu.org/stable/kakasi-2.3.4.tar.gz
    gtar xvfz kakasi-2.3.4.tar.gz
    cd kakasi-2.3.4
    ./configure
    make
    su
    make install
    
  4. GNU gettextをインストール。これを入れないと検索結果の日本語表示ができない。Solarisについてくるgettextだとダメみたい。

    wget http://ftp.gnu.org/gnu/gettext/gettext-0.14.5.tar.gz
    gtar xvfz gettext-0.14.5.tar.gz
    cd gettext-0.14.5
    ./configure
    make
    su
    make install
    
  5. Namazuをインストール。

    wget http://www.namazu.org/stable/namazu-2.0.16.tar.gz
    gtar xvfz namazu-2.0.16.tar.gz
    cd namazu-2.0.16
    ./configure
    make
    su
    make install
    make install-data
    
  6. Namazuモジュールをインストール。
    configure でincludeディレクトリを指定してもMakefile内でinclude pathに追加されないため、手動で追加する必要あり。

    wget http://www.koderz.org/uploads/media/php4_namazu-2.1.0.tar.gz
    gtar xvfz php4_namazu-2.1.0.tar.gz
    cd namazu
    ./configure --with-namazu
    vi Makefile
    (INCLUDEに -I/usr/local/include を追加)
    make
    su
    make install
    

環境設定

  1. PHPを使用したページがほとんどなので、まずは一度静的ページに置き換える。wgetでミラーリングするのが簡単らしい(けど、対象にしたくないページが大量にあるので、自分で必要なファイルだけHTTPで取得するスクリプトを書いて、mirrorディレクトリの下に置いた)。

    mkdir mirror
    cd mirror
    wget -nH --mirror http://my.domain.com/
    
  2. 検索用のディレクトリを作成。

    mkdir search
    cd search
    
  3. namazu.cgiのコピー。

    cp /usr/local/libexec/namazu.cgi .
    chmod 755 namazu.cgi
    
  4. インデックス作成。結構時間がかかる。インデックスファイル置き場のディレクトリをnamazu.cgiを置いた場所と分けたのは、再インデックスのたびに設定ファイルを上書きされるのを防ぐため。

    mkdir index
    cd index
    mknmz --indexing-lang=ja_JP.eucJP --replace 's#/export/www/mirror/#http://my.domain.com/#' -U -a -z /export/www/mirror
    cd ..
    cp Index/NMZ*.ja .
    
  5. .namazurcを作成して、次の内容を記述。

    Index /export/www/search/index
    Template /export/www/search
    Lang ja
    
  6. NMZ*を編集して、デザインをカスタマイズする。

  7. 定期的にインデックスを作成するためにcrontabに次の行を追加。

    35 3 * * * mknmz --indexing-lang=ja_JP.eucJP --replace 's#/export/www/mirror/#http://my.domain.com/#' -U -a -z -O /export/www/search/index /export/www/mirror > /dev/null 2>&1
    

関連リンク

その他の全文検索ツール

ht://Dig
Namazuと違い、ネットワーク上のファイルもインデックス対象とできる。ただしC++で書かれているのでroot権限がないとインストール不可。
msearch
Perlで書かれた全文検索CGI。Namazu同様、静的ファイルしか検索対象にはできないらしい。
タイトルとURLをコピーしました