以下、同僚に教えてもらったりした設定例。
Trac はなかなか便利なんですが、複数のプロジェクトを扱う場合は、すこし工夫が必要。
$ trac-admin /var/trac/hoge1 initenv 'Hoge1 Project' sqlite:db/trac.db /var/lib/svn /usr/share/trac/templates
$ trac-admin /var/trac/hoge2 initenv 'Hoge2 Project' sqlite:db/trac.db /var/lib/svn /usr/share/trac/templates
と、2つのプロジェクトを登録していた場合、
httpd.conf を
<Location "/projects/hoge1">
SetEnv TRAC_ENV "/var/trac/hoge1"
</Location>
<Location "/projects/hoge2">
SetEnv TRAC_ENV "/var/trac/hoge2"
</Location>
とか書き連ねて、各ディレクトリに、trac.cgi をコピーといった荒技を繰り出したくなるんですが(え?ならない?)、そんなことをしなくても
ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi
<Location /trac>
SetEnv TRAC_ENV_PARENT_DIR /var/trac
</Location>
だけで OK。上の例だと
http://www.example.co.jp/trac
にアクセスすると、そのサイトで管理されているプロジェクト一覧が表示されるので、あとはそのリンクをたどればOK。もちろん
http://www.example.co.jp/trac/hoge1/
http://www.example.co.jp/trac/hoge2/
でもアクセス可能。
あとSubversion についてですが、ディレクトリを切ることでプロジェクトを分け、運用する場合の話。上記の例だと異なるプロジェクトのはずなのに、タイムラインを見ると、すべての更新情報が表示されるので、見通しが悪くなります(/var/lib/svnの部分)
ファイルシステム上に、そんなディレクトリねぇよ! とか思わず
/var/lib/svn/hoge1
とか指定しておくと、リポジトリツリーの hoge1 以下の変更のみが表示されるので、見通しがよくなります(cf. http://wota.jp/ac/?date=20060301#c01)
あとで直す場合は
/var/trac/hoge1/conf/trac.ini
[trac]
repository_dir = /var/lib/svn/hoge1
を修正すればOK。
ちなみに Trac の機能に不満をもったら
http://trac-hacks.org/
へアクセス。きっと欲しい機能をサポートしたプラグインがあるはず。
IPv4/IPv6 meter |
思ったより安い……時もある、Amazon |