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を使っているという設定です。
なんだか自分でも何を書いているのかわからなくなってきました。何か間違いがありそうな気がします。お気づきの方は突っ込んでね。