Vine Linux3.2でのnamazu(全文検索システム)を使っての個人ホームページ内検索システムの構築(て、ほどでもない)

 以前に当サーバにて一度はnamazuを使用しての検索システムを設置したことはあるのだがシステムをアップグレードしてからnamazu自体の事を忘れていた。
で、いざnamazuを設置しようと思い過去の記憶を手がかりに設置しようとしてみては物の肝心なnamazu.cgiが見つからない…
何故に…/home/httpd/cgi-bin内では見つからないし…困ったなぁ
と色々調べてると

namazu.cgiをapt-getを使用してインストール

#apt-get update ←アップデート対象検索(何度か失敗)
#updatedb ←locateコマンド用データベースの更新
#locate namazu.cgi  ← namazu.cgiがインストールされているかチェック
#apt-get install namazu-cgi(何故か出来ない時もある、apt-get updateが出来ていない時など)

これでめでたくゲットできたら 1:namazu-cgi ################# [100%]
とでてくる(はず)
そうしたら
#/home/httpd/cgi-bin
内に
.namazurcとnamazu.cgiが出来ています。
そのファイルを個人のディレクトリ(cgi-bin内に)にコピーします。
なお、/etc/httpd/conf/httpd.confの設定にて個人フォルダーにてcgiが実行出来る設定でなければいけません(Apacheの設定です。)

#ls
namazu.cgi
.namazurc

# .namazurcを編集

Index      /home/hogehoge/public_html/index

Template   /home/hogehoge/public_html/index

Replace    /home/hogehoge/public_html http://www.pc98-dx.expac.hiroshima-u.ac.jp/~hogehoge

と.namazurcについてはこれぐらい

次に
#/home/hogehoge/public_html内で既にWWWが見れている状態とします。

public_html内にindexを作成します。
#mkdir index

/home/hogehoge/public_htm/indexに移動してindexの作成
#mknmz "http://www.pc98-dx.expac.hiroshima-u.ac.jp/~hogehoge" --exclude="(cgi-bin|log)" "/home/hogehoge/public_html"

※ --exclude="(cgi-bin|log)"は、cgi-binフォルダとlogフォルダーを検索対象外にする

これでindexが作成されるはず。

で、検索ページを作成(適当に編集)

-----------------------------------------------------------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<title>検索</title>


<BODY bgcolor="#ffcd37"><P><B>ホームページ内検索</B></P>
 
  
    
<TABLE>
<TBODY>
<TR>

<TD width="890"><FONT size="1">ホームページ内を検索します。<BR>
cgi-bin内は、検索の対象外なので掲示板等のデータは検索できません</FONT></TD>
</TR>
</TBODY>
</TABLE>
<FORM METHOD="GET" ACTION="http://www.pc98-dx.expac.hiroshima-u.ac.jp/~hogehoge/cgi-bin/namazu.cgi">
    <P>
    <STRONG><a href="http://www.namazu.org/"><strong>Namazu:</strong></a></STRONG>

    <INPUT TYPE="TEXT" NAME="key" SIZE="25">
    <INPUT TYPE="SUBMIT" NAME="submit" VALUE="検索">
    <INPUT TYPE="RESET" NAME="reset" VALUE="リセット">
    <BR>
    <STRONG>表示件数:</STRONG>
    <SELECT NAME="max">
    <OPTION VALUE="10">10
    <OPTION SELECTED VALUE="20">20
    <OPTION VALUE="30">30
    <OPTION VALUE="50">50
    <OPTION VALUE="100">100
    </SELECT>

    <STRONG>標準表示:</STRONG>
    <SELECT NAME="format">
    <OPTION SELECTED VALUE="long">標準
    <OPTION VALUE="short">簡潔
    </SELECT>
    </P>
    <INPUT TYPE="HIDDEN" NAME="whence" VALUE="0">
    </FORM>
   </td>

</tr>
</BODY>

-----------------------------------------------------------------------------------------------------------------
これで検索出来るようになりましたが、連絡先等を変更する場合は、カスタマイズが必要になってきます。

NMZ.foot.ja内のメールアドレス部分を
<a href="mailto:hogehoge@pc98-dx.expac.hiroshima-u.ac.jp">webmaster</a>
等に変更します。
しかしこれでは、インデックスを再作成した再に設定が無効になるのでパーミッションを変更します。(555とか)
(これでは、plのエラーがでてダメみたいでした。)
(追加です。)
-----------------------------------------------------------------------------------------------
と思ったら良い解決方法がありました。
index内にindexorgフォルダを作成して
NMZ.foot.ja
NMZ.head.ja
をコピー(カスタマイズする)
cgi-bin内にある.namazurcを編集
テンプレートの指定を
Template /home/hogehoge/public_html/index/indexorgに変更
これで、再度インデックスを作成してもテンプレートはオリジナル部が参照されるのでindex内のNMZ.foot.ja等は変更されているが影響はしない

-----------------------------------------------------------------------------------------------

あと、NMZ.head.jaを変更(バックイメージ部とか)

<style type="text/css">
<!-- (赤部とる)
strong.keyword { color: Red; }
p.example { text-indent: 1em;
color: Navy;
font-weight: bold;
font-family: monospace; }
code { color: Navy;
font-family: monospace; }
code.example { color: Navy;
font-weight: bold;
font-family: monospace; }
code.operator { color: Navy;
font-family: monospace;
font-weight: bold; }
--!></style>  (赤部とる)

</head>

<body lang="ja" bgcolor="#ffcd37" link="#009900" vlink="#009900">(追加部)

これで自分好みの検索ページが作れます。

過去の以下

namazuの変更(Vine2.6)

/usr/share/namazu/plの
conf.plを変更

#
# This is a Namazu configuration file for mknmz.
#
package conf; # Don't remove this line!

#===================================================================
#
# Administrator's email address
#
$ADDRESS = 'hoge@pc98-dx.expac.hiroshima-u.ac.jp';(メール設定)


.namazurcを変更
# /home/httpd/cgi-bin/.namazurc for Vine Linux
#
# Each item is must be separated by one or more SPACE or TAB characters.
# You can use a double-quoted string for represanting a string which
# contains SPACE or TAB characters like "foo bar baz".

##
## Index: Specify the default directory.
##
Index /usr/share/namazu/index(indexをおくところ)

# This is the directory in which Vine namazu_*db packages are installed.

##
## Template: Set the template directory containing
## NMZ.{head,foot,body,tips,result} files.
##
Template /usr/share/namazu/index

# This is the directory in which Vine namazu templates are installed.

##
## Replace: Replace TARGET with REPLACEMENT in URIs in search
## results.
##
## TARGET is specified by perl-like regular expressions.
## You can caputure sub-strings in TARGET by surrounding them
## with `(' and `)'and use them later as backreferences by
## \1, \2, \3,... \9.
##
## To use meta characters literally such as `*', `+', `?', `|',
## `[', `]', `{', `}', `(', `)', escape them with `\'.
##
## e.g.,
##
## Replace /home/foo/public_html/ http://www.foobar.jp/~foo/
## Replace /home/(.*)/public_html/ http://www.foobar.jp/\1/
## Replace /C\|/foo/ http://www.foobar.jp/
##
## If you do not want to do the processing on command line use,
## run namazu with -U option.
##
Replace /home/httpd/hoge http://hoge.expac.hiroshima-u.ac.jp
(パスの指定)
--------------------------------------------------------------------------
つづく
後は、indexを置くフォルダ(/usr/share/namazu/index)に移動して
mknmz /home/httpd/hogeでOK

定期的にインデックスを作成

namazu.shを作成

cd /usr/share/namazu/index(namazuのインデックスに移動)
mknmz '--exclude=/home/hoge/public_html/01/seacret/.*' /home/hoge/public_html
(/home/hoge/public_html内を検索してindexを作成、けど/home/hoge/public_html/01/seacret/.*の中身は除外する。)

crontabを編集、/dev/null 2>&1 /dev/nullは何のためにあるかは?です。(こうしないと動かなかったので)

10 */1 * * * /etc/namazu.sh >/dev/null 2>&1 /dev/null(1時間10分おきにindexを作成)
完全に理解していないので不安