CentOS5.4+Trac0.11.2.1.ja1 を使って、1サーバで複数のTracを運用しています。
svnのリポジトリは /var/svn/hoge1, /var/svn/hoge2 みたいな感じで
それぞれのsvnに対して /var/trac/hoge1, /var/trac/hoge2 とTracを設定しています。
んで、複数プロジェクトの進行をチェックするのがちょっと面倒なので、Tracの複数プロジェクトをまとめるのをやってみました。
ちょっと調べてみると、こちらのリポジトリからTraM0.3をチェックアウトできるみたい。
svn checkout http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/TraM/branches/genshi-ja
cd genshi-ja
python setup.py install
で、インストール。ここまでは問題なし(本当は別のサイト見て0.2をインストールしちゃったので、一回やり直した)
あとチェックアウトしたリポジトリに入ってた t7823-genshi_modpython-r8333-011.diff を tracのソースにパッチ当て。trac/web/__init__.py のパッチみたいなので、pythonのsite-packagesのtracのディレクトリに移動して
patch < t7823-genshi_modpython-r8333-011.diff
設定ですが、同じくRyuzeeさんの所を参考にして作業。
まとめ用のsvn(/var/svn/all)とまとめ用のtracを作成(/var/trac/all)
svnadmin create /var/svn/all
chown -R apache /var/svn/all
trac-admin /var/trac/all initenv (リポジトリは/var/svn/all を指定、他は適当)
chown -R apache /var/trac/all
まとめたいTracプロジェクトの /var/trac/hoge1/conf/trac.ini とかに
tramplugin.* = enabled
の記述を追加。
最後に httpd.conf の設定ですが、ココでハマりました。
Alias /trac/hoge1 "/var/www/cgi-bin/trac.cgi"
<Location /trac/hoge1>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /var/trac/hoge1
</Location>
Alias /trac/hoge2 "/var/www/cgi-bin/trac.cgi"
<Location /trac/hoge2>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /var/trac/hoge2
</Location>
こんな感じの設定にしておいて、複数Tracのディレクトリを分けて管理してたので。ここにTramの設定を追加。
#All Project (TraM)
Alias /trac/all "/var/www/cgi-bin/trac.cgi"
<Location /trac/all>
SetHandler mod_python
PythonHandler tram.web.modpython_frontend
PythonOption TracEnvParentDir /var/trac
PythonOption TracUriRoot /trac
</Location>
としたら「Internal Server Error」
ログ見ると 「PythonHandler tram.web.modpython_frontend: ImportError: No module named web」
と。
んで、ココでしばらく悩んだ(setuptools辺りとかclearsilver入れ直したり、思い誤ってweb.pyインストールしたり)のですが。
tramの中見たら、tram直下にmodpython_frontend.pyが有ったので
Alias /trac/all "/var/www/cgi-bin/trac.cgi"
<Location /trac/all>
SetHandler mod_python
PythonHandler tram.modpython_frontend
PythonOption TracEnvParentDir /var/trac
PythonOption TracUriRoot /trac
</Location>
と変更したらそのまま動いた…
その他使い勝手とかまだ見てないけど、それは後日にしようかと。TracLightningくらい予めプラグイン乗っかってるパッケージ、Linuxに無いのかなぁ。
(追記)
何か統合タイムラインがエンコード関係の問題で動いてなかったので。site-packages/sitecustomize.py に
import sys
sys.setdefaultencoding('utf-8') # cp932 でも良いかな。
を書いて動かした。いやでもこの対応で良いのかな?