2008-03-08-Sat 複数のtdiary インストールメモ
_ [Web] 複数のtdiaryを同一サーバで運用する方法のインストールメモ。
・XREA+tdiary2.2.1+日記&Blogkitの運用
・image_ex.rb、search.rbの追加プラグインを使用
上記の仕様でインストールしようとし、先人達のメモなどを見ていろいろ試行錯誤をしたが上手くいかなかった。
自分なりに考え、なんとか上手くいっているようなので、備忘録として残す。
ディレクトリ構造 | |||||
virtual/userID/ | data/ | diary_1/ | ……日記1のデータディレクトリ | ||
blog_1/ | ……blog1のデータディレクトリ | ||||
public_html/userdomain/ | tdiary/ | ……tdiaryのインストールディレクトリ | |||
blogkit/ | ……tdiaryのインストールディレクトリ | ||||
doc/ | |||||
misc/ | |||||
plugin/ | |||||
theme_url.rb | ……テーマを共有するプラグイン | ||||
skel/ | |||||
tdiary/ | |||||
theme/ | |||||
.htaccess | |||||
blog.conf | |||||
tdiary.conf | |||||
image_size.rb | |||||
nph-index.rb | ……index.rbじゃない理由は後述 | ||||
search.rb | |||||
update.rb | |||||
diary_1/ | ……日記1を運用するディレクトリ | ||||
images/ | ……日記1のimage_ex.rbの画像ディレクトリ | ||||
.htaccess | |||||
nph-index.rb | ……index.rbじゃない理由は後述 | ||||
search.rb | |||||
tdiary.conf | |||||
update.rb | |||||
blog_1/ | ……blog1を運用するディレクトリ | ||||
images/ | ……blog_1のimage_ex.rbの画像ディレクトリ | ||||
.htaccess | |||||
nph-index.rb | ……index.rbじゃない理由は後述 | ||||
search.rb | |||||
tdiary.conf | |||||
update.rb |
tdiaryのディレクトリに本体をインストールし、diary_1、blog_1にそれぞれ日記とblogをインストールする。
日記やblogを増やす場合は並列に同様に。
.htaccess(全て共通)
Options +ExecCGI
AddHandler cgi-script .rb
DirectoryIndex nph-index.rb
<Files "*.rhtml">
deny from all
</Files>
<Files "tdiary.*">
deny from all
</Files>
<Files update.rb>
AuthName tDiary
AuthType Basic
AuthUserFile /virtual/userID/.htpasswd
require user user
</Files>
blog.conf blogKit内のtdiary.comf.sample_jaの下記部分を変更、追加する。
#
# データを格納するディレクトリ
#
@data_path = "/virtual/userID/#{@directory_name}"
@options['sp.path'] = [
'/virtual/userID/public_html/tdiary/misc/plugin',
'/virtual/userID/public_html/tdiary/blogkit/plugin']
# 絵日記プラグイン機能追加版
#@options['image_ex.previewsize'] = 120
@options['image_ex.yearlydir'] = 0
@options['image_ex.useresize'] = 1 # ←コレがポイント
@options['image_ex.converttype'] = 0
@options['image_ex.thresholdsize'] = 240 #これより大きいサイズはリサイズされる
@options['image_ex.convertedwidth'] = 240 #サムネイルのサイズ(横)
@options['image_ex.convertedheight'] = 180 #サムネイルのサイズ(縦)
@options['image_ex.convertpath'] = "/usr/bin/convert" #convertのパス。xreaの場合は標準装備なのでこれでOK。
diary.conf tdiary.comf.sampleの下記部分を変更、追加する。
@data_path = "/virtual/userID/#{@directory_name}"
@options['sp.path'] = '/virtual/userID/public_html/tdiary/misc/plugin'
@options['image_ex.previewsize'] = 120
@options['image_ex.yearlydir'] = 0
@options['image_ex.useresize'] = 1 # ←コレがポイント
@options['image_ex.converttype'] = 0
@options['image_ex.thresholdsize'] = 240
@options['image_ex.convertedwidth'] = 240
@options['image_ex.convertedheight'] = 180
@options['image_ex.convertpath'] = "/usr/bin/convert"
nph-index.rb
#!/usr/local/bin/ruby
require '/virtual/userID/public_html/tdiary/nph-index.rb'
update.rb
#!/usr/local/bin/ruby
require '/virtual/userID/public_html/tdiary/update.rb'
diary_1のtdiary.conf(日記用)
@directory_name = 'data/diary_1'
eval( File::readlines( "/virtual/userID/public_html/tdiary/diary.conf" ).join.untaint )
@options['image.dir'] = '/virtual/userID/public_html/diary_1/images/'
@options['image.url'] = 'http://diary_1/images/'
@data_path = "/virtual/userID/data/diary_1"
blog_1のtdiary.conf(blog用)
@directory_name = 'data/blog_1'
eval( File::readlines( "/virtual/userID/public_html/tdiary/blog.conf" ).join.untaint )
@options['image.dir'] = '/virtual/userID/public_html/blog_1/images/'
@options['image.url'] = 'http://blog_1/images/'
@data_path = "/virtual/userID/data/blog_1"
theme_url.rb(一つのthemeを共有化するプラグイン)
def theme_url
'http://userdomain/tdiary/theme'
end
ここで、index.rbをnph-index.rbとした目的を書いておく。
xreaの有料版(広告無し)では、2回に1回、スクリプトエラーが出てしまう。
それを回避する方法が以下。
(方法は全てxrea で tDiary を正常に動かす方法(まとめ)を参考にしている。(というかそのまま)
・ファイルネームの変更(index.rb→nph-index.rb)
・.htaccessの修正(index.rb→nph-index.rb) …上記の.htaccessは修正済み
・tdiary.rbの修正
head = {
'type' => 'text/html',
'Vary' => 'User-Agent'
}
を
head = {
'nph' => true, # 追加
'type' => 'text/html',
'Vary' => 'User-Agent'
}
に修正。また、
rescue TDiary::ForceRedirect
head = {
#'Location' => $!.path
'type' => 'text/html',
}
を
rescue TDiary::ForceRedirect
head = {
#'Location' => $!.path
'nph' => true, # 追加
'type' => 'text/html',
}
に修正。これでエラーを吐かなくなる。
ちなみに、これをやったのは随分前なので、現在のバージョンでも同様にエラーが起こるかは不明。保険の意味で変更しておいた。もしかすると、やらなくても大丈夫かもしれない。
その他、tdiaryのインストールディレクトリに、search.rb、image-size.rb、misc/pluginにimage_ex.rbをコピーする。
ちなみに、search.rbは最新の物では上手く動かず、grep.rb,v 1.58というもので動いている。
後は、nph-index.rbとupdate.rbの属性を700にしてやれば、準備完了。
以上で、一通り動く、ハズ。疲れた〜。(これを書くのもね)
最後に、参考にさせて頂いたページを。
絵日記プラグイン機能追加版(image_ex.rb)をいれる
諸先輩方に感謝。