FreeBSD で Namazu を使う

以前ホームページ作成の解説で有名な、とほほのWWW入門さんより、サイト内検索をしてくれる WwwSearch という CGI プログラムを頂いて設置していたのですが、Perl5.8 にしたせいか上手く検索してくれなくなっしまいました。
それで検索CGI で有名な、Namazu を導入してみることにしました。かねてからそうしようと思っていたのですが、何か難しそうで敬遠していました。普通の CGI プログラムと違って、コンピュータのアプリケーションとしてインストールする形のようです。で、うちのサーバのOSは FreeBSD4.11 なので、FreeBSD のケースでインストール・設定を解説されているサイト探しから始めました。

幸い 九州大学 大学院システム情報科学研究院 牧之内研究室 さんのサイトの WWWサーバで namazu による全文検索 のページに割りと分かりやすく書かれていましたので、今回参考にさせて頂きました。m(_ _)m

サーバ機は3台あるのですが、OS、アプリ、ユーザ設定など皆同じにし、定期的に稼動機よりデータのバックアップをとっています。3台の中の稼動していないものに、試験的にインストールしてみることにしました。

その手順を忘れないためにも、おさらいしておきます。
まず、namazu 本体のインストールの前に、namazu が動作する環境を作っておいてあげる必要があります。
■ textproc/xlhtml
  エクセル(xls)データをHTML形式に変換/コンバートすることができるツール
■ textproc/wv2
  MS Word ファイルを閲覧するためのアプリ
■ misc/lv
  強力な多言語ファイルビューア
■ japanese/xpdf
  xpdfPDFファイルを閲覧するためのアプリ
  検索対象にPDFファイルがある場合は、インストールしておくべき?、と思って
  インストールしたのですが、えらく時間がかかりました (^^;)
■ japanese/nkf
  ネットワークでメールやニュースの読み書きをするために作られた、漢字コードの変換フィルタ JIS, Shift-JIS, EUC に対応。MIME デコードもできる
■ devel/gettext
  一つの実行ファイルでメニューなどに使われる言語を切り替えることができるアプリ
  これは既にインストールされている方がほとんどだと思います
■ japanese/kakasi
  シンプルな漢字仮名変換装置. 日本語用言語フィルタ
■ japanese/namazu2
  肝心要のナマズです。

この内既にインストールされているものもあるかも知れませんので、pkg_info のコマンドで、既にインストールされているアプリの一覧を、テキストファイルにコピーしました。
既にインストールされていたアプリの一覧
調べてみると、gettext だけは既にインストールされていました。xhtml や wv2、xpdf などは、検索したいディレクトリに、これらのアプリに関連した形式のファイルが置いてなければ、インストールする必要はありません。

今回試しに皆インストールしてみたのですが、xpdf のインストール中に、xpdf-3.00.tar.gz がないのでダウンロードできないよ! どっかから見つけて来て、ports の distfiles ディレクトリに置いてくんろ! というエラーが出てしまいました。ネットで検索してみますと、各ダウンロード用のサーバには、xpdf-3.01.tar.gz しかありません。これはports の更新をしてからでないとまずいようです。しかし cvsup コマンドで全ての ports の更新をしたのでは、時間がかかりすぎるので、上の textproc、misc、japanese、devel だけ更新することにしました。
/etc/ports-supfile の ports-all をコメントアウトし、textproc、misc、japanese、devel のコメントアウトを解除してあげて、cvsup を実行しました。

これは正解だったようで、cvsup も短時間で終わり、アプリのインストールも全て滞りなく終わりました。(^^;)

後は設定です。設定ファイルは、mknmzrc-sample と namazurc-sample。
それぞれを .mknmzrc と. namazurc の名前でコピーした後、namazu.cgi を動作させるディレクトリに移動させます。解説サイトによっては、mknmzrc-sample と namazurc-sample を mknmzrc と namazurc とドットをつけないでリネームしているところもありましたが、今回のケースでは、ドットをつけないと認識してくれませんでした。

肝心の namazu.cgi は、最初ありかが分からなくて探してしまったのですが、
/usr/local/libexec にありました。namazu.cgi を最初 cgi-bin に置いたのですが、後々操作しやすいディレクトリの方がいいでしょうということで、home ディレクトリに namazu というディレクトリを作ってそこに置きました。元々 home ディレクトリは、CGI が動作する設定になっています。

.mknmzrc と. namazurc ファイルの書き換えは下記の通り。今でもどの設定が生きているのかよく分かりません。(^^;)
mknmzrc
namazurc

で、ここからがはまった部分です。検索データとなるインデックスファイルを作るのですが、最初パソコンおやじさんのページに書かれていたコマンドで実行してみたところ、全く上手く行かず参ってしまいました。.mknmzrc と. namazurc ファイルで設定した設定が、まるっきり生きてくれません。おやじさんのマシンは Linux なので、OSの違いからなのでしょう。結局牧之内研究室さんのページに戻り、書かれていた通りのコマンドで実行してみたところ、上手く行きました。コマンド自体に、日本語文字コードなどを書き込みます。

そのコマンドを書いたファイルを namazuupdate.sh として保存し、/usr/local/bin に置いて 、/usr/local/bin/namazuupdate.sh で簡単に実行できるようにして起きました。cron で定期的に実行させてもいいのですが、最近サイトの更新も頻繁ではないので、行った際に手動でインデックスファイルの更新をすることにしました。

さて、出来上がった Namazu によるサイト内検索のページ です。
テンプレートファイルは、/usr/local/var/namazu/index 以下にあり、NMZ.head.ja と NMZ.foot.ja を書き換えることによって変えられます。それと文字化けを防ぐために、このふたつのファイルに日本語文字コード指定のための meta タグをしっかりといれておいた方がよいかも知れません。

PageTop