Gentoo 安裝/設定 TRAC

參考自:
http://dabod.blogspot.com/2009/11/gitweb-setup-for-gentoo.html
http://en.gentoo-wiki.com/wiki/Trac
http://trac-hacks.org/wiki/AccountManagerPlugin

安裝 mod_python:
emerge mod_python

編輯:
/etc/conf.d/apache2
加上:
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D PYTHON"

編輯:
/etc/apache2/webapps.d/localhost/02_trac.conf
加上:
SetEnv PYTHON_EGG_CACHE /var/lib/trac/.egg-cache
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/lib/trac/
PythonOption TracUriRoot /trac/

AuthType Basic

AuthName "Trac Server"

AuthUserFile /var/svn/conf/svnusers

Require valid-user

假設我們的 project 都放在 /var/lib/trac/ 因為將使用 web 認證, 所以將 basic 認證關閉了

建立使用者認證檔:
htpasswd2 -c -s /var/lib/trac/trac.passwd2 username
-c 只有在此檔案不存在時下, 之後不用加
-s 強迫使用 SHA hash
trac 為 realm 名稱, 可自訂, 但要和 project 中 /conf/trac.ini 裡的 htdigest_realm 相符
username 請自行變更

建立新 project:
trac-admin /var/lib/trac/test initenv
test 為 porject name, 請自行變更

為使用者新增管理權限
trac-admin /var/lib/trac/repos1/ permission add username TRAC_ADMIN

編輯 project 設定:
/var/lib/trac/test/conf/trac.ini
加入:
[components]
trac.web.auth.LoginModule = disabled
acct_mgr.web_ui.LoginModule = enabled
acct_mgr.web_ui.RegistrationModule = disabled
acct_mgr.htfile.HtPasswdStore = enabled
acct_mgr.web_ui.AccountModule = enabled

[account-manager]
; configure the plugin to store passwords in the htpasswd format:
password_store = HtPasswdStore
password_file =" /var/lib/trac/trac.htpasswd2

這樣就可在 web 界面下登入/管理 trac 中的 projects 了