!はじめに
Xreaのサーバーに1つだけtDiaryをインストールして、ディレクトリ毎に別のblogkitを立ち上げるところまでのドキュメント。

!ダウンロード
*[[ちょっと妖しい開発版|http://www.tdiary.org/download/tdiary-full-1.5.6.tar.gz]]
*[[もっと妖しい開発スナップショット版|http://www.tdiary.org/download/tdiary-full.tar.gz]]
*[[Blogkit|http://www.tdiary.org/download/tdiary-blogkit-1.5.6.tar.gz]]
安定番の1.4.5は使ったことがないですが、たぶん同じ事が出来ないと思いますので、ちょっと怪しい開発版以降をダウンロードする必要があります。

[[ご本家の解説|http://www.tdiary.org/20021205.html]]にも1度目を通すことをおすすめします

!解凍
[[ご本家の解説|http://www.tdiary.org/20021205.html]]ではCVSでのインストールを薦めていますが、XREAはSSHでディレクトリ移動が出来ないのでインストールできません。したがってローカルで解凍してからftpで転送します。解凍にはtarやgzipに対応したツールを[[統合アーカイバプロジェクト|http://www.csdinc.co.jp/archiver/]]などでもらって来るなどします。

!アップロード
解凍して出来たtdiaryフォルダをそのままユーザーディレクトリのpublic_htmlと同じ階層"/"(/virtual/userID/)に転送する。

出来上がったディレクトリ構成は
 virtual/
        userID/
              etc/tdiary.conf      #共通のtdiary.conf
              var/tdiary/          #データディレクトリ
              tdiary/
                    blogkit/       #blogkitを解凍したままここに入れる
                           plugin/
                    doc/           #これはなくても良いと思う。
                    erb/
                    misc/
                        plugin/    #標準添付のプラグイン
                        plugin_s/  #その他の拡張プラグイン
                    plugin/
                          00default.rb
                          01sp.rb
                          theme_url.rb #これがないとうまくいかない
                    skel/
                    tdiary/
                    theme/
                    index.rb
                    tb.rb       #必要に応じて
                    tdiary.rb
                    todo.rb     #必要に応じて
                    update.rb
index.rbの68行目附近head['Last-Modified']の行をコメントアウトする。これがあると何故がXREAでは2回に1回ScriptErrorが出る。

!NORAとUCONV
==これらは現在インストールできてません。現在模索中。美味くできたら追記することに。無くても動くのだ。==

XREAではSSHでほとんど何も出来ないようなので、cgiでコンパイルするようです。[[CGIでNoraライブラリーのインストール|http://shimoi.s26.xrea.com/ydiary/20030419.html#p01]]で出来上がったファイル
*escape_ext.so
*uconv.so
をもらって、所定の場所にアップしました。tDiaryインストールディレクトリのindex.rbなどと同じところにuconv.soとNoraのescape.rbを、webというディレクトリを作ってescape_ext.soを入れておくと、実際に動かすディレクトリには何もしなくても動くようでした。これはHikiFarmでも同じようにすれば動くようです。

!共通のtdiary.conf
 # shared tdiary.conf
 @data_path = "/virtual/userID/var/tdiary/#{@directory_name}"
 
 @header = <<HEADER
 <%=navi%>
 <h1>#{@directory_name}blog</h1>
 <%=calendar%>
 HEADER
 
 @footer = <<FOOTER
 <%=calendar%>
 <%=navi%>
 FOOTER
  
 @options['sp.path'] = \
 ['/virtual/userID/tdiary/misc/plugin',\
 '/virtual/userID/tdiary/misc/plugin_s',\
 '/virtual/userID/tdiary/blogkit/plugin']
 
 @secure = false    #日記を貸すわけでもないのでtrueでなくても良い。
 load_cgi_conf

!tDiaryを動かすディレクトリ毎のtdiary.conf
 @directory_name = 'directry1'
 eval( File::readlines( "/virtual/nobring/etc/tdiary.conf"\
  ).join.untaint )
 
 これ以降はblogkitに付いているtdiary.conf.sample_jaの内容を
 @data_pathを除いて貼り付け適宜設定する。


!theme_url.rb
今回は日記ではなくblogkitをディレクトリ毎にインストールして使うというのが目的なので各ディレクトリ毎にbase.cssとdefault.cssが1つずつ有ればよいので、theme_url.rbの内容は
 # theme_url.rb
 def theme_url
    'theme'       #全て同じスタイルを使うには/themeとかにすればOK
 end
ここで肝心なのはtDiaryの設定で参照されるのはtDiaryインストールディレクトリにあるthemeで、実際に使われるのはtDiaryを動かしているディレクトリにあるthemeだと言うことです。Symlinkなどを使ってpublic_html配下にthemeディレクトリを置いておくのも1つの方法ですが、blogkitでサイト構築に使う場合はそれほど頻繁にthemeを替えるとも思わないのでこの方法が現実的かと思います。

!tDiaryを動かすディレクトリ
 public_html/
            directry1/
                     theme/
                          default/
                                 default.css
                          base.css
                     .htaccess
                     tdiary.conf  #ディレクトリ毎に必要
                     index.rb
                     tb.rb
                     tdiary.rb
                     todo.rb
                     update.rb
!!index.rbの内容
 #!/usr/local/bin/ruby
 require '/virtual/userID/tdiary/index'
としてパーミッションを700に設定する。これ以外にもtdiary.rbやupdate.rbも同じように作成する。tb.rbとtodo.rbは必要に応じて同じ要領で作成すればよい。

!!.htaccessの内容
 AddType "text/html; charset=EUC-JP" html
 AddType "application/xml; charset=EUC-JP" rdf
 AddType text/css .css
 
 XBitHack full
 
 Options +ExecCGI
 Options -Indexes
 
 RewriteEngine on
 RewriteBase /hoge/      #それぞれのベースURL? 20030115
 RewriteRule ^([0-9]+)\.html$ index.rb?date=$1
 RewriteRule ^$ index.rb #これが効いたのかエラーが消えた。20030115
 
 DirectoryIndex index.rb
 
 <Files "*.rhtml">
     deny from all
 </Files>
 
 <Files "tdiary.*">
     deny from all
 </Files>
 
 <FilesMatch "(update|todo).rb">
     AuthName      tDiary
     AuthType      Basic
     AuthUserFile  /virtual/userID/.htpaswrd
     Require          valid-user
 </FilesMatch>

などとすればよいと思われる。mod_rewriteは動いているようなので、html_anchor.rbとあわせてYYYYMMDD.htmlでアクセスできるようにすることが可能です。

!ご意見などが有ればどうぞ

//{{comment}}