Ruby言語やLinuxのネタが多いです。
March 16, 2002 [おもひで]
■ [Misc] 中途半端にテクニックがある人(続き)
肝心なこと書くの忘れてた。もう一つ重要なことが。ある人(例えば後輩)がやろうとしていることが、今までの自分のやり方と違うからといって、その人のことを「中途半端にテクニックがあるやつ」と片づけてしまう人。こういう人も相当やばいよね。
■ なんか全部自分自身の自戒を並べた感じだな〜。注意しよう。
■ tDiaryは内部的にHTMLではないバイナリでデータを保存しているので直接Namazuでインデックスを作ることができない。そこで、以下のような手順を取る。
- tDiaryに入っているmisc/squeeze.rbを使って、一時的に1日ごとのHTMLを抽出する(ファイル名はYYYYMMDD)
- それをベースにmknmzでインデックスを作る
ただ、ここで生成したHTMLは実際の検索結果のHTMLというわけではない。あくまでも検索結果はtDiaryが毎回生成するHTMLにしたいからね。 - そこで、misc/squeeze.rbで生成されるファイル名がYYYYMMDDであることと、NamazuのReplace機能を使って、
/home/mutoh/homepage/hoge/text/YYYYMMDD → http://ponx.s5.xrea.com/bibo/?diary=YYYYMMDD
になるように設定することでうまくtDiaryが毎回生成するHTMLを参照できるようにするわけだ
■ 自分が自由にできるサーバであれば、misc/squeeze.rbを実行してその後mknmzを実行するようなスクリプトを書いてcronで動かすようにしておけば全自動でいけるんだが、xreaではそうは行かない。
■ 詳しくは自己満足にっきにも書かれているのでそちらを読んで欲しいのが、xrea側はプログラムの実行がかなり制限されている(これはセキュリティ上はやむを得ないと思うんだけど...)ので、その上でmisc/squeeze.rbを実行することは(たぶん)できない。そんなわけで、morikenさんの場合は
- 一度、xrea上のデータをftpでローカルなtDiary環境に持ってくる
- そこでリモートとほぼ同じ環境のtDiaryのmisc/squeeze.rbを実行する
- 生成されたHTMLファイルをftpでxrea上にputする
- xrea上でmknmzを実行する
という手順を取ってる。この手順だとtDiaryの環境をローカルにも作らないといけないのがとっても面倒くさい。
■ これではあまりに大変なので、misc/squeeze.rbを改造してCGIとして動くようにしてみた。これならば
- ブラウザからsqueeze.rbを呼び出す
- xrea上でmknmzを実行する
という感じになるのでだいぶ楽になる。ローカルに環境を作らなくてもいいしね。
■ 本当はmknmzもCGIから実行したいのだがどうもうまくいかない。もしかしたらセキュリティ上の問題かな。XREAのエラー画面はよくわからないのでとってもデバッグがしづらい。
それができたら、ホントはsqueeze.rb自体を自動起動したいんだけどなぁ。さすがにそれは無理か(^^;)。
■ そんなわけで、もうちょっとスクリプトを整理したら公開しようかな。でも、めちゃくちゃ汎用性ないな〜(^^;)。
