設定MEMO  ページ一覧  検索  更新履歴  編集履歴  PageRank  RSS  ソース  ログイン  HikiFarm

XREAでt Diary

はじめに

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

ダウンロード

安定番の1.4.5は使ったことがないですが、たぶん同じ事が出来ないと思いますので、ちょっと怪しい開発版以降をダウンロードする必要があります。

ご本家の解説にも1度目を通すことをおすすめします

解凍

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

アップロード

解凍して出来た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ライブラリーのインストールで出来上がったファイル

  • 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でアクセスできるようにすることが可能です。

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

更新日時:2008/04/21 00:01:00
キーワード:
参照:[設定MEMO]