へんこつ日誌

Oral_Top_Anchor
トップ «前の日記(2003年12月11日(木)) 最新 次の日記(2003年12月13日(土))»
RSS feed


ここから本文

2003年12月12日(金) [長年日記]

§1 tDiaryでサイト構築

ちょっとタイトルを変えた。色々試しているが大体感じがつかめてきた。大前提は一つのtdiaryでディレクトリ毎に別のtdiaryやblogkitを動かしてサイトを構築していく構想です。大体考えたディレクトリ構成は、

home/
     hoge/
          var/
               tdiary/
                    directory_name/  #data_path
          etc/
               tdiary.conf           #共通の tdiary.conf
          tdiary/
               blogkit/
                    plugin/
               doc/
               erb/
               misc/
               plugin/
               plugin2/
               skel/
               tdiary/
               theme/
               index.rb
               tdiary.rb
               update.rb
          public_html/       #ここからしたがWebから見える
               index.rb   #Symlinkでもrequireでもよい
               update.rb   #Symlinkでもrequireでもよい
               tdiary.conf   #blogの時はマージする
               .htaccess
               theme/    #default/default.cssを置く
               directory1/
                    index.rb
                    update.rb
                    tdiary.conf
                    .htaccess
                    theme/
               directory2/
                    index.rb
                    update.rb
                    tdiary.conf
                    .htaccess
                    theme/

プラグインはsp.rbを使うので、共通の/etc/tdiary.confに/home/hoge/tdiary/plugin2と/home/hoge/tdiary/blogkit/pluginを設定しておけば使えるようになる。問題はthemeですが後述します。

本体のインストールはCVSから

# cd /home/hoge
# cvs -d :pserver:anonymous@cvs.tdiary.sf.net:/cvsroot/tdiary\
co -d tdiary core

とした。次にpluginのインストール。こちらもtDiary.orgの教えにしたがって

# cd /tdiary
# cvs -d :pserver:anonymous@cvs.tdiary.sf.net:/cvsroot/tdiary\
co -d plugin2 plugin

ついでにblogkitの入れておく

# cvs -d :pserver:anonymous@cvs.tdiary.sf.net:/cvsroot/tdiary\
co -d blogkit blogkit

共通のtdiary.confには

# shared tdiary.conf
@data_path = "/home/hoge/var/tdiary/#{@directory_name}"
@options['sp.path'] = ['/home/hoge/tdiary/misc/plugin2','/home/hoge/tdiary/blogkit/plugin']

としておけば使えるようになる。

public_html配下にindex.rbとupdate.rbを

#!/usr/bin/env ruby
require '/home/hoge/tdiary/index'

の用にする(update.rbも同じように)またそれぞれのディレクトリに個別のtdiary.confを置いておくが

@directory_name = 'hoge'
eval( File::readlines( "/home/hoge/etc/tdiary.conf" ).join.untaint )

等としておきこのtdiary.confにblogkitのtdiary.confの必要な部分をコピペして使えばblogとして使える。

最後にthemeだけれどこれが案外厄介です。サイト構築に使う場合はそれほど頻繁にthemeを変えるとは思わないのでそれぞれのディレクトリにthemeディレクトリを作ってdefault.cssを置くようにする。もちろんこの default.cssはそのディレクトリ用にカスタマイズされた物でよい。

一つのtDiaryで複数動かしている場合、設定画面のテーマを選ぶドロップダウンメニューに表示されるのは共通のディレクトリ/home/hoge/tdiary/theme/の物であり、実際に表示されるのはそれぞれのディレクトリにあるtheme/の物だと言うことです。複数の日記に共通の環境を提供する場合はtheme_url.rbを作って全てのthemeをSymlinkしておく方法が最適だと思いますが、サイトの構築を考えた場合themeはそれぞれのディレクトリに置いておけばよいと思います。

tdiaryをCVSでcoreだけインストールした場合themeにはbase.cssとdefault/とtdiary2/だけですので、それぞれで動いているtdiaryは常にdefault.cssを使っているという設定です。

なんだか自分でも何を書いているのかわからなくなってきました。何か間違いがありそうな気がします。お気づきの方は突っ込んでね。