|
|
全文検索システムNamazuの構築
|
全文検索エンジンとはNamazuのインストールNamazuのファイル構成Apacheによる公開設定索引作成のための設定mknmzによる索引の作成検索出力のための設定namazu.cgiによる検索の実行出力デザインのカスタマイズNamazu検索窓の設置Namazuの運用のポイント |
Namazu索引用データディレクトリの作成Namazu を利用するには、まず検索のためのデータベースとテンプレートを保存する場所が必要ですので、新規にデータディレクトリを作成します。 データディレクトリを作成する場所は、 Apache により外部からのアクセスが許可されていない場所であれば何処でも構いません。
ただ、かなり頻繁に読み書きが行われるディレクトリですし、
Webブラウザ
からのアクセスに関するデータの置き場所なので、
"/var/www/"
以下に作成するのがベターです
ここでは解りやすいように、 "/var/www/namazudata/" としてデータディレクトリを作成します。 また、データベースの出力場所とテンプレートの置き場所を分けておく必要がありますので、そのデータディレクトリの中に "db/" というデータベースディレクトリと "template/" というテンプレートディレクトリを作成しておきます。
そして最後にこれらのディレクトリの所有者を、被検索対象のドキュメントルートと同じく
"tanaka"
に変更しておきます
「でも、データディレクトリ内を HTTP で参照できなければ、閲覧者が検索結果を読み取れなくなるのでは?。」 と思われるかもしれませんが心配はいりません。なぜならNamazuの索引データベースは閲覧者が直接参照するわけではないからです。
閲覧者がNamazuを利用して検索を行う場合、
CGI
プログラムである
"namazu.cgi"
を利用することになりますが、
"namazu.cgi"
はHTTP経由ではなく単純に
構築中のLinuxサーバー
内で索引データベースを参照するだけですから、この参照にはApacheのアクセス制御
この意味を勘違いして、データディレクトリに、
のような設定を行うことは、単純に セキュリティ 上の問題を増やしてしまうだけですから気をつけてください。 つまりここで作成したデータディレクトリに対しては、 Apacheによる意図的なアクセス制御設定は不要 、ということになります。 また、データディレクトリの所有者と所有グループは、 仕組みだけ を考えれば変更する必要はありません。 "root" のままでもOKです。
これを敢えて
"tanaka"
に変更しているのは、このディレクトリ内に保存されるテンプレートファイルや初期設定ファイルの修正や編集に
"root"
アカウント
を使わずに済むように、という安全上の配慮です
さて、Namazuによる検索結果を HTML で表示するために必要なテンプレートファイルの雛形は "/usr/share/namazu/template/" 以下にあります。 この中には日本語用のテンプレートの他に、英語、フランス語、ドイツ語、スペイン語のテンプレートも入っていますが、日本語に表示を限定する場合は末尾に ".ja" が付くファイルだけをテンプレートディレクトリ "/var/www/namazudata/template/" 以下にコピーしておけばOKです。 そして索引データベースを出力する際の初期設定ファイルの雛形である、 "/etc/namazu/mknmzrc" を "/var/www/namazudata/" 以下にコピーします。 そしてそれらの所有者、所有グループも上位のデータディレクトリと揃えて "tanaka" に変更しておきましょう。 以上でデータディレクトリの作成はひとまず終了です。
|
|||||||||
namazu.cgiの設置場所の作成Namazu によるサイト内検索を閲覧者にホームページ上から行ってもらう場合、 CGI 実行ファイルである "namazu.cgi" を HTTP から実行できるディレクトリに配置する必要があります。
まず、
Apache
の
CGIの実行許可の設定
を参考に、
"AddHandler"
ディレクティブ
で
"*.cgi"
を有効なCGI
スクリプト
に追加してください
既に何らかの形で、 Webサーバー 上で "*.CGI" による サーバーサイドアプリケーション が実行されている環境であれば、ここは設定済みになっているはずです。
また、
Apache
の設定で
"/var/www/cgi-bin/"
に
スクリプトエイリアス
の設定を有効にしている場合には
もともと
"/var/www/cgi-bin/namazu.cgi"
にはデフォルトで
"755"
の
パーミッション
が与えられていますので
http://www.obenri.com/cgi-bin/namazu.cgi
で検索ページを表示することができるようになります。 もちろん "namazu.cgi" の設置場所は "/var/www/cgi-bin/" 以下でなければならないという理由はありません。 既に "/var/www/cgi-bin/" に他のスクリプトがたくさん置いてあるようなときは、新たに別のディレクトリを作成してスクリプトエイリアスを宣言し、 "namazu.cgi" をそのディレクトリに移動して、Namazu専用の実行ディレクトリとして使用したほうが間違いがないかもしれません。
さて、動作の点だけを考えればスクリプトエイリアスにこだわる必要はなく、例えば
"Options ExecCGI"
の設定
この場合も "namazu.cgi" をそのディレクトリ内に移動して配置することになります。 |
||||||||||
画面上では見づらいかもしれませんが、これは先頭に
".(ドット)"
が付いています
。
|
また、 "namazu.cgi" は同じディレクトリ内に ".namazurc" が存在すると、それを初期設定ファイルとして利用しますので、雛形ファイルである "/etc/namazu/namazurc" を ".namazurc" に改名して同じ実行ディレクトリ内にコピーしておきます。 ここでは例として、Namazu専用の実行ディレクトリ "/var/www/namazu/" を作成して運用することにします。 この場合検索エンジンへのアクセスURLは、
http://www.obenri.com/namazu/namazu.cgi
となります。 |
|||||||||
| 所有者、所有グループを変更しているのは、上で説明したデータディレクトリの作成の場合と同じ理由によるものです。 |
次に、このディレクトリに対してApacheによるアクセス制御の設定を行います。
Apacheの主設定ファイル
"/etc/httpd/conf/httpd.conf"
をnanoエディタで開き
編集が終わったら、設定ファイルを保存してnanoエディタを閉じてください
ところで、本来であればこういったテスト中のシステムは、動作確認が終わるまでは WAN 側からのアクセスは拒否しておくべきです。 しかしNamazuは クライアント からの書き込みが発生しないシステムですし、コンテンツ上に、
http://www.obenri.com/namazu/namazu.cgi
へのリンクを設置するまでは事実上利用できませんので、最初から公開設定にしておいても問題はないでしょう。
またこのとき、既に
"/etc/httpd/conf/httpd.conf"
の中身が煩雑になってきているときは、その中に記述する代わりに同じ内容の
"namazu.conf"
のような名前の
テキスト
ファイルを新規に作成し、
"/etc/httpd/conf.d/"
以下に保存するとすっきりして良いかもしれません
設定が終わったら、Apacheの設定ファイルの書式チェックを行い
|
|||||||||
ファイルレイアウトの確認とCGIの動作チェックちょっと説明が煩雑になりましたので、まとめとしてこのパートで作成したディレクトリとファイルの構造を以下に示します。 ここが正しく構成されていないと、先で躓くことになりますのできちんとチェックしてください。
作成したNamazuの構成ファイル レイアウトと設定が正しいことが確認できたら、ここでは CGI がきちんと動作できる状態にあるかどうかの確認をやっておきましょう。 ネットワークに接続している任意の クライアント機 の Webブラウザ から、
http://www.obenri.com/namazu/namazu.cgi
へアクセスしてみてください。 |
||||||||||
|
Namazuの解説書です
↓ |
CGIの実行のための設定に誤りがなければ、ここで 真っ白なページ が表示されるはずです。 この段階ではまだ何の初期設定も行っていませんので、 "namazu.cgi" は出力するデータが何もないため、こういう結果になるわけです。
もしもここでエラーメッセージが表示される場合にはCGIの設定に関してどこかに誤りがあるはずですので、このパート及び
|
|
|
Namazuのファイル構成
<<Previous
|
Next>>
索引作成のための設定
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |