2003年08月18日(月) [長年日記]
§1 またまたテスト
実はmsearchで手こずってました。自動更新も出来てませんでした。果たしてどうなることやら。この自動更新が一番肝心なのだが。
その前に、tDiaryで検索できるようにHTMLを生成するための準備が必要だ、色々試して落ち着いたのが、1.4以前の旧形式で保存して、拡張子は付けない設定でsqueezeを設定した。yyyymmdd と言うファイルが出来る。
こうしたのにはワケがあって、tDiaryでmsearchを使う方法をtDiaryUser'sで見つけて検討したけれど、METAタグのrefreshを書込時に埋め込むのは良いのだけれど、過去の記事をどうするかが読めなかったので諦めた。
msearchの検索結果をクリックしたときに目的の日付にRedirectすればよいわけだから。
/home/hoge/tdiary/html/yyyymmdd
にアクセスしたら
/home/hoge/tdiary/?date=yyyymmdd
に自動で移動すればよいわけです。
.htaccessに一行追加すれば簡単にRedirectしてくれます。
Redirect 301 /tdiary/html/ http://www.foo.net/tdiary/?date=
とすれば上手く行きました。
msearchで日記を検索するのに色々情報を集めたけど、msearchは1.5系列から非情に便利になっています。インデックスを複数切り替えできてしかも、インデックスに合わせてスキンも変えられるとなると、バージョンアップしない手はありません。
サイト全体のインデックスとおみさんの日記のインデックスと僕の日記のインデックスを自動で更新するためのスクリプトを作ってcrontabに登録したが、ちゃんと動くかはこうご期待。一応最初の動作確認のためそれぞれのインデックスは作っておいた。
msearchの検索フォームに次の一行を付け加えるとインデックスとスキンが自動で変わります。その前にhoge.idxとhoge.cfgを作っておく必要があります。
<input type="hidden" name="index" value="hoge"> <input type="hidden" name="config" value="hoge">
config の方は省略可能です。インデックスファイルと同じ名前にしておけばインデックスを指定してやれば自動で適用されます。
§2 crontabとautogenindex.sh
自動実行してくれる組み合わせがわかりました。それにしてもmsearchHELPの説明だけでは、全く動きませんでした。
autogenindex.shの内容 #!/bin/sh cd /home/hoge/htdocs/msearch #msearchをカレントにする ./genindex.pl <<HERE #プログラム呼び出し default #indexの名前を指定、省略時もdefault ../ #インデックスディレクトリ http://www.harunaru.com/ #インデックスURL .html,.htm,.shtml #インデックスファイルの拡張子 cgi-bin #非インデックスディレクトリ .cgi,.rb #非インデックスファイルの拡張子 検索,私 #非インデックス検索語句 1 #ランキング方法 1 #alt属性もインデックスするか HERE
msearchを1.5系列にバージョンアップしたので、前回の説明とは異なってます。index名が指定できるようになっているのが特徴です。最初のディレクトリの移動の行を入れるのに気付くまで時間がかかりました。これをSSHでログインしてコマンドラインで実行してみます。
%/home/hoge/htdocs/msearch/autogenindex.sh
で、インデックスが更新されたら成功です。これにならって日記用のdiarygenindex.shなども作っておくとサイト全体の検索と日記内の検索とを分けることが出来ます。さて、次のステップcronへの登録です。crontabに登録する内容をあらかじめテキストエディタで作成して、コマンドラインからcrontabに登録します。
crontabの内容 0 6 1,15 * * /home/hoge/htdocs/msearch/autogenindex.sh 15 6 * * * /home/hoge/htdocs/msearch/diarygenindex.sh
1行目はサイト全体のインデックスを作る用で、毎月1日と15日の午前6時にに実行されます。2行目は日記用のインデックスを作る用で、毎日午前6時15分に実行されます。こんな解説でわかるかなぁ?