実践Linux
CentOS5/6.5        CentOS5/6.5 目次へ  TOP(HOME)へ


namazuによる全文検索(CentOS5の場合)  2010年1月





namazu 2.0.20 (CentOS5環境)
Namazu を動作させるために最低でも以下のソフトウェアが必要です。
 ・Perl(5.004以降)
 ・File::MMagic  Namazu の配布には File::MMagic (1.27) が同梱されています。
日本語の文書を処理する場合には以下のソフトウェアが必要になります。
 ・nkf (2.07を推奨)
 ・KAKASI (2.3.0以降)もしくは ChaSen もしくは MeCab
 Perl 拡張モジュールを利用することもできます。
  ・NKF (2.07を推奨)
  ・Text::Kakasi もしくは Text::Chasen もしくは MeCab
 これらのソフトウェアは Namazu のインストール前にあらかじめインストールされている必要があります。

CentOS5でのインストール状況
 ・Perl 5.8.8がインストール済み
 ・File::MMagic なし
 ・nkf 2.0.7がインストール済み
 ・KAKASI なし
 確認 perl、nkfのバージョン # perl --version または # man perl等
     perlモジュールの場所 # perldoc -l File::MMagic
     kakasi # which kakasi等

●KAKASI 2.3.4 のインストール:
・解凍
 tarball を解凍したい場所に置いて、tar でアーカイブを解凍します。
 $ tar xvzf kakasi-2.3.4.tar.gz
・configure
 解凍したディレクトリに移動して、configure を実行します。
 $ cd kakasi-2.3.4
 $ ./configure
・make
コンパイルを行い、root でインストールを行います。
 $ make
 $ su
 # make install
エラーが発生しなければ、インストールは終了です。

●namazu 2.0.20のインストール
解凍 % gzip -dc namazu-2.0.20.tar.gz | tar xvf -
まず、File::MMagicのインストール
 % cd namazu-2.0.20/File-MMagic
 % perl Makefile.PL
 % make
 % su
 # make install
namazu本体のインストール
 % cd namazu-2.0.20
 % ./configure
 % make
 % su
 # make install


使用
●インデックスの作成
 インデックス用ディレクトリ/var/www/namazu_indexを作っておく。パーミションは755。
 /var/www/html以下のファイルを/var/www/namazu_indexディレクトリにインデックス作成
  # mknmz /var/www/html -O /var/www/namazu_index  (-O以下を明示しないと、カレントディレクトリに作成される)
 制限 /var/www/html/test1と/var/www/html/test2ディレクトリは除外する場合
  # mknmz "--exclude=/var/www/html/test1|/var/www/html/test2" /var/www/html -O /var/www/namazu_index
  --exclude=で2つ以上「|」でつないで指定するなど正規表現を使う場合は全体を「''」または「""」で囲ってやる。
  「|」の前後に空白を入れるとexcludeされないので注意。
 また、pdfファイルはこのままでは未対応。あとで設定。

●検索テスト
 インデックスが作成された/var/www/namazu_indexディレクトリで、
 # namazu 営業 .  営業という文字を検索

●cgiの設定
 namazu.cgiをさがす。 # find / -name namazu.cgi → /usr/local/libexec/namazu.cgi
 これを /var/www/cgi-bin/ にコピーする。
 次に、 /usr/local/etc/namazu/namazurc-sample を /var/www/cgi-bin/ に「.namazurc」名に直してコピー。
 /var/www/cgi-bin/.namazurcの編集
  Index /var/www/namazu_index
  Template /var/www/namazu_index
  Replace /var/www/html/ http://www.yam-web.net/
  Logging off または on
  Lang jp

●検索フォームの設定
 /var/www/html/search/ディレクトリを作っておく。パーミションは755。
 /var/www/namazu_index/よりNMZ.head.jaとNMZ.foot.jaを/var/www/html/search/ディレクトリにコピーして、
 # cat NMZ.head.ja NMZ.foot.ja > search.html  これで2つがくっついたsearch.htmlができる。
 search.htmlの編集  下の2カ所
  <form method=”get” action=”../../cgi-bin/namazu.cgi”>
  <a href=”../../cgi-bin/namazu.cgi”>[検索方法]</a>

●インデックスの更新
@ホームページを更新したときは、インデックスも刷新してやる必要がある。
 再度、以下を実行。
 # mknmz --exclude=/var/www/html/test1 /var/www/html -O /var/www/namazu_index
A/var/www/html/search/search.htmlの更新。
 文書数、キーワード数、更新日(これらは/var/www/namazu_index/NMZ.head.jaを見ればわかる)。


PDF 文書を検索できるようにする
http://www.foolabs.com/xpdf/download.htmlより以下のファイルをダウンロード。
 xpdf-3.02.tar.gz
 xpdf-3.02pl1.patch
 xpdf-3.02pl2.patch
 xpdf-3.02pl3.patch
 xpdf-3.02pl4.patch
 xpdf-japanese.tar.gz
同じフォルダにダウンロードしたとする。

XPDFのインストール(NamazuのPDFフィルタ用のモジュール)
 # tar zxvf xpdf-3.02.tar.gz
 # cd xpdf-3.02
 パッチをあてる。
 # patch -p1 < ../xpdf-3.02pl1.patch (-p1オプションについては下参照)
 # patch -p1 < ../xpdf-3.02pl2.patch
 # patch -p1 < ../xpdf-3.02pl3.patch
 # patch -p1 < ../xpdf-3.02pl4.patch
 インストール
 # ./configure
 # make
 # make install

インストール状況の確認
 # which pdftotext
  /usr/local/bin/pdftotext

日本語の Language Support Packages のインストール
 # tar zxvf xpdf-japanese.tar.gz
 # cd xpdf-japanese
 # mkdir -p /usr/local/share/xpdf/japanese
 # cp -R *.unicodeMap *.cidToUnicode CMap /usr/local/share/xpdf/japanese
 # cat add-to-xpdfrc >> /usr/local/etc/xpdfrc

patchの-p1オプションについて
 パッチファイルはどのディレクトリに対してパッチを当てるかという情報を持っています。
 パッチファイルの実体はテキストファイルですので、中身を見ると以下のように書いてある箇所があります。
 --- xpdf-3.02/xpdf/Stream.cc等
 # cd xpdf-3.02とディレクトリ移動してパッチを当てようとした場合、以下のようにコマンドを打ちます。
 # patch -p1 < ../xpdf-3.02pl1.patch
 ここで-p1としたのは、xpdf-3.02/xpdf/Stream.ccから1段分のディレクトリ指定を取り除くためです。
 (xpdf-3.02/を取り除いてxpdf/Stream.ccとしてパッチを適用することになります)



TOP(HOME)へ

目 次
HOME
 全体のシステム構成&目次


RockyLinux

RockyLinux8.4のインストール

旧サーバーからのデータ移行

ネットワークの設定ほか
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
DHCPサーバー
FTPサーバー
FTPS(FTP over SSL/TLS)
Webサーバー
  アクセス解析ツールAwstats
Mail(Dovecot&Postfix)サーバー
MariaDB(MySQL)サーバー
SSHサーバー
SSHトンネル
SSH+MariaDB+Exel
Sambaサーバー
openVPNサーバー
VNCサーバー(リモートディスクトップ)

systemdとfirewalldについて


CentOS8
CentOS7
CentOS5〜6

SELinux

Cプログラミング


●その他
クラウド Amazon EC2
Raspberry Piで遊ぶ
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く


●趣味の世界
相対性理論
量子力学
群論
熱力学・統計力学
解析力学
物理でつかう数学
超弦理論(ノート作成中)