17:48:28単一のWebサーバ上で、複数のtDiaryを運用したい場合があります(tDiary.Netのように)。個々の日記をそれぞれ別のtDiaryで運用してもいいのですが、バージョンアップなどが面倒です。いう場合に、単一のインストールイメージで複数の日記を運用できる仕組みが、tDiaryには備わっています。以下にその手順を解説します。この方法は、tDiary.Netで使われているものとぼほ同じです。tDiaryのインストールバージョンアップを簡単にするために、Gitを使ってtDiaryをインストールします。ここでは最新版(master/HEAD)を使うことにします。ダウンロードページにもあるように、Git版は非常に不安定な状態にある可能性があります。トラブルを自分で回避する自信がない場合はパッケージを使いましょう。インストール先を「/usr/local/share/tdiary」としましょう。theme(以下略)これで、/usr/local/share/tdiaryの下に、core、themeの各パッケージのディレクトリができました。themeの中身を、core/themeの下にシンボリックリンクを張っておきます。通常、/usr/local/share/tdiary/themeはWebサーバで公開されていませんから、公開しているところにシンボリックリンクを張らなければなりません。公開ディレクトリを「/home/httpd/html」とし、このトップに置くことにします。同様に、JavaScriptの入ったjsディレクトリも、Webサーバから参照できるようにしておかなくてはいけません。jsまた、シンボリックリンクが使えるように、Apacheの設定でFollowSymLinksを設定しておく必要があります。これだけではtDiaryが正しいテーマのURLを埋め込んでくれないので、以下のプラグインを書いて、「/usr/local/share/tdiary/plugin」に置いておきます。'/js'end共通のtdiary.conf複数の日記それぞれにtdiary.confを設置するのは、重複する情報もあり、効率が悪いです。サーバ側の設定を変えたいときにも、共通の設定ができていれば、一ヶ所修正するだけで済みます。@headerや@footerをあらかじめ設定しておくことで、初めて使うユーザに適切なメッセージを送ることもできます。そこで、個々の日記のtdiary.confから読み込まれる、共通のtdiary.confを用意しておきましょう。ファイル名は「/etc/tdiary.conf」とします。仕掛けは、変数「@user_name」です。これで一括変換できます。trueload_cgi_confこれで、設定画面からユーザごとに好きなプラグインを選択可能です。ここでは最小限の設定をしていますが、付属のtdiary.conf.beginnerをベースにしても良いでしょう。@secureはデフォルトでtrueにしておきましょう。falseにしたい場合は、あとで設置する個々の日記用のtdiary.conf内で指定できます。必要に応じて@no_refererや@referer_tableも設定しておくと各ユーザが設定する手間を省けます。個々の日記は、インストールしたtDiaryのindex.rbとupdate.rbにシンボリックリンクを張ることで実現します。ユーザ「hoge」の日記を「/home/hoge/public_html/diary」に置く場合です。update.rbこの他に、付属のdot.htaccessを適当に修正して.htaccessとする必要があります(もちろんhttpd.confで設定してもかまいません)。htpasswdコマンドでパスワードを設定する必要があります。それから、日記のデータの置き場所を作成しておくのを忘れないようにしましょう。@data_pathには/var/tdiary/#{@user_name}を指定してありますから、この場合は/var/tdiary/hogeというディレクトリを作成しておきます。このディレクトリは、Webサーバの権限で書き込めるようにしておく必要があります。シンボリックリンクを許可したくない場合には、以下のようなindex.rbを用意することで同等のことが実現できます(update.rbも同様です)。これらのファイルにはWebサーバの実行アカウント権限で実行可能にしておく必要があります。suExec環境下の場合は、個々のユーザがindex.rbの所有者である必要がありますから(実行権限もownerに)、以下の方法しか使えません。'/usr/local/share/tdiary/core/index'最後に、以下のようなtdiary.confを用意します。10:25)すんまそん。し忘れて、ちょい悩みました。/var/tdiaryまでしか作って無いというミスをしました。<br><br>とりあえずは、このドキュメントどおりにインストールしたら、うまく動きだして幸せです。14:57)なるほど。追記しておきましょう。23:48)そういえばそうでした。(SecurityError)<br><br>と、mod_ruby環境で言われてしまうのですが......。<br>どうしてなんでしょう。01:18)すみません。<br>1.4.4.1は、mod_rubyで動いていたものですから、<br>このドキュメントに従って、installしたから、<br>mod_rubyで動かなくなったのかと勘違いしておりました。<br><br>申し訳ありませんでした。22:05)このドキュメントどおりインストールをしたはずなのですが、おそらくあと一歩のところで動きません。<br><br>環境はDebian3.0woody+apache1.3.26+ruby1.6.7です。<br>mod_rubyは使っていません。/home/(ユーザ名)/public_<br>html/tdiary/index.rb<br>とだけ書かれています。その後にエラーは出力されていません。<br><br>/var/tdiary/(ユーザ名)ディレクトリは作ってあります。<br>apacheを動かしているユーザでコマンドで動かしてみると<br>HTML文書は出力されました。<br>他のrubyスクリプトは動いています。/home/(ユーザ名)/public_html/tdiary/index.rb<br><br>でした。21:52)自分で打ち込んだファイルを調べたんですが改行コードはLFでした。<br>どのファイルの改行コードがCRLFだとまずいのでしょうか。01:37)昨日からぼちぼちと設定をやっております。'hoge'<br><br>という行を追加すれば、「一人のユーザーが複数の日記をつける」ことも出来ました。日記の他に、備忘録もtdiaryで管理したいなと思いまして。選ぶという形式になっていますね。00:07)プラグイン選択のパスを設定すれば、シンボリックリンクは不要ですね。15:28)プラグインのパスをフルパスにしないと駄目な場合があるようで、はまってしまいました。19:17)おっしゃるとおりです、ありがとう。現在使えない状態のようです。変更しちゃえばCVSが使えます(読者向けコメント)。20:20)ご指摘どうも。20:36)tb.rbはindex.rbやupdate.rbと同じ場所にコピーしなければなりません(マニュアル参照)。それをしないと上記のような設定が必要になります。23:17)cvsやsourceforge.netの事はあまり知らないんですが...<br>cvs.sourceforge.netでは上手くいかず、tdiary.cvs.sourceforge.netとしたら出来ました。23:56)irgalさん、おっしゃるとおり、CVSサーバが変わったのに追従していませんでした。02:00)対応早いですね。'plugin2'はフルパスで無いとpluginの選択が出来ませんでした。'plugin2'はフルパスで無いとpluginの選択が出来ませんでした。<br><br>調査します。19:58)sp.pathの件は、記事中では絶対パスに直しました。<br>相対パスも指定可能ですが、各日記のパスからの相対になります。1.9.3-p374。