RubyでWeb日記を作ろう の巻き その2
前回までは Linux magazine 2001 07 に載っていた内容。
今回は 08 の分。
着手するまでに、ちょっと(かなり?)時間が空いてしまったが、
その分、世の中は進んで tDiary のバージョンが上がっていた。
bug fix もされているみたいだから、結果オーライとしよう。

tDiary の home page から最新版のアーカイブ tdiary-1.2.0.tar.gz をゲット。
なぜか安定版が2つ( 1.0.1 と 1.2.0 ) あった。
とーぜん 1.2.0 を落す。(実は保険をかけて 1.0.1 の方も落していたりして。。。)

アーカイブを ~/work/ で展開。
README.html を(ちょびっと)読む。
後は Linux magazine に書いてあるとおりに実行。



アーカイブの展開
$ cd ~/public_html/
   ~/public_html にページを置くのはこの世界の決まり事の様だ
$ tar xzvf tdiary-1.2.0.tar.gz
Created ~/public_html/diary/

$ cd ~/public_html/diary/

tdiary.conf の修正
tDiary の設定ファイルの事。
展開しただけではこのファイルは無くて、tdiary.conf.sample
をコピーして作る。
また、修正はブラウザからでもある程度は出来るらしいけど
まどろっこしい
から、エディタで直接修正した。
$ cp tdiary.conf.sample tdiary.conf
$ vi tdiary.conf

$ diff tdiary.conf tdiary.conf.sample
< @data_path = '/home/user/lib/tdiary'
> @data_path = '/home/foo/diary'

< @index_page = 'http://localhost/~jun1/damex/frame.html'
> @index_page = 'http://www.hoge.example/~foo/'

< @html_title = 'Web 日記 tDiary'
> @html_title = 'hogehoge diary'

< <h1> Web 日記 </h1>
> <h1> ほげほげ日記 </h1>

< @date_format = '%Y-%m-%d(%a)'
> @date_format = '%Y-%m-%d'

< @theme = 'pool_side'
> @theme = 'default'

修正が必要なのは @data_path のみ。
これを正しく設定しないとまともに動かない。
ってか、使えない。
それ以外は設定しなくても使用上問題にはならない。
が、使う上で気分、及び、使い心地がよろしくないので若干の修正を加えた。

index_page
トップページの左上に表示される「トップ」に張られるリンク先の URL を指定する。
例えば、ホームページの下に tDiary の日記を作っている場合などに tDiary からホームページに戻るときに便利。

html_title
更新ページのタイトル
h1 の部分はヒアドキュメントになっていて、トップページのヘッダになる。
ほげほげ日記のままでも良かったんだけど なんとなく今まで Web日記で通して来たので、そうした。

data_format
毎日の日付の表示に曜日を加えただけ。

theme
ページの見た目の変更。
何となく pool side にしたけど、次点に maroon もあり。
但し、俺の netscape では背景はネスケのデフォルトのままで、設定が反映されない。
モジラならテーマが効くんだけどな。
でも使うのはネスケ。

日記の保存場所作成
tdiary.conf 中の @data_path で指定したディレクトリが保存場所になる。
理由は分からないけど ~/public_html/ 以下に作ってはいけない。
例えば、
  ~/public_html/diary
なんてしちゃうともう
サイアク
ブラウザで http://localhost/~user/diary/ を指定すると
見に行ったっきりになって、「ウン」 とも 「スン」 とも 言わなくなって、
戻ってこなくなっちゃう。
この事を知らなくて一週間近く悩んだ。
ホントにすんげー悩んだ。
ワケわかんなくて、ruby のバージョンを上げたり(1.6.2 -> 1.6.3)、
apache の設定( /etc/httpd/conf/httpd.conf )をあーでもない、 こーでもない、っていじったり、
tDiary の参考資料がないか google で探してみたり
(使えんモンばっかりだった)。
テスト用に簡単な cgi( bash と ruby の両方 )を作って、
動くか確認テストまでしちゃったよ。
その為に cgi についての勉強までしてさ。未だに良く分かんないけど
とにかく、思い付くこと全て試してみた。
で、その落ちが tDiary の取説を
よく読んでなかった
だけだなんて。。。

で、どこにしたかってーと
~/lib/tdiary/ にした。
(肝心な設定ファイル tdiary.conf もここに入れないといけない )
なぜかって?
そんなもん、なんとなくに決まっているじゃん。
ってか、今更もう覚えていない。
多分、設定関係だから ~/lib/ にしたんじゃないかな。

/etc/httpd/conf/httpd.conf の修正
以下の行を追加

<Directory "/home/*/public_html/diary">
    /home/*/public_html/diary 以下で有効
  AddHandler cgi-script .rb .cgi
    拡張子 .rb を有するrubyスクリプトを cgi scriput として認識させる
  Options FollowSymLinks ExecCGI
    cgi 実効を許可
  DirectoryIndex index.rb
    URL の指定を / で終らせた時に index.rb を読み込ませる
</Directory>

<Files "*.rhtml">
  deny from all
   eRuny を埋めこんだ HTML ファイル( rhtml )を読み込ませない
</Files>
ちなみに、eRuby とは、テキスト(HTML以外でも可)に Ruby スクリプト(の断片)を埋め込んだもので、 CGI の一種らしい。
これを使うと動的に変化するテキストを作ることが出来て、便利、だそうだ。
eRuby には eruby と erb の2つがある。
eruby は C 言語で書かれていてコンパイルが必要。mod_ruby との組み合わせも可能。
erb は 100% Ruby で書かれていて、ライブラリとして使いやすい、らしい。
今回の tDiary は erb を使うそうな。
使いかたは、、、わからん。まったく。
tdiary-1.2.0.tar.gz の中に入っていて、使えるようになっているみたい。

<Files "tdiary.*">
  deny from all
    設定ファイル( tdiary.rb と tdiary.conf ) は見せない
</Files>

<Files update.rb>
  AuthName tDiary
  AuthType Basic
  AuthUserFile /home/user/.htpasswd
  Require user user
    update.rb を読むにはパスワードが必要
</Files>

apache の設定ファイル( /etc/httpd/conf/httpd.conf )を書き換えたら
# /etc/rc.d/init.d/httpd restart
をして設定を反映させる事を忘れずに。



これで tdiary-1.2.0.tar.gz のインストール + 設定は終了。

あとは、ブラウザから
URL http://localhost/~user/diary/
を指定すれば Web 日記の表紙、っていうか、最近5日の日記が出る。
日記を付けるのはこのページの上の方にある「更新」から飛べる。

まだ、使いかた、表示の仕方が良く分からないけど、
ブラウザだけですむってのはイイかも。
一度記入した日記も後から修正出来るのも良いものなり。
てっきり、入れた内容は修正できなものだと思ってた。
まあ、折角苦労して入れたんだから、ポチポチやって行きましょう。

日記の内容は、その日に何があったか、ってのは二の次で、
PC 関係についてが主のつもりだった。
その日に、何をして、どうなったか。
その方法は、どうしたのか。
まあ、忘備録をつけるってことだね。

そういえば、tDiary を入れるきっかけは ruby の勉強も兼ねていたんだっけ。
全然勉強にならなかったな。
















あ、これ rpm にパッケージングした方がいいのかな。
ま、いいか、入れた先はホームディレクトリ以下だけだし。




戻る