用戶要求:
- 為每個項目開一個Trac的Repository
- 每位同事在不同項目的權限並不一樣
- 統一的密碼,所有Trac的repoistory應該使用同一個密碼檔。
- SSL支援
- 內部使用,不許公眾查閱
系統: Debian Lenny
網頁伺服器:Lighttpd
Trac版本 : 1.1
路徑:
TRAC_ENV=/var/lib/trac #Trac的Repository
PRIVATE=/var/lib/private # 放置密碼的地方。
CODENAME=test # 首個Trac repo的名字
PROJECT=$TRAC_ENV/$CODENAME #那個Trac repo的放放目錄
Trac的安裝方式:
- 採用Lighttpd而非獨立的trac
- Trac layout為Multiple Trac Projects - Multiple Repositories - Multiple Databases。 詳見 http://trac.edgewall.org/wiki/TracCaseStudies
- 版本控制:沒有,因為代碼放在其他地方
以下是我安裝的步驟:
1. 安裝Lighttpd
第一步是安裝及設定lighttpd:
$ apt-get install lighttpd
把以下設定加入 /etc/lighttpd/lighttpd.conf
$HTTP["host"] =~ "your-domain.com$" {
server.document-root = "/var/lib/www/html"
server.errorlog = "/var/log/lighttpd/your-domain.com.err.log"
accesslog.filename = "/var/log/lighttpd/your-domain.com.access.log"
var.fcgi_binary = "/usr/bin/python /usr/share/pyshared/trac/web/fcgi_frontend.py"
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile="/var/lib/private/passwd"
auth.require = ("/" =>
("method" => "basic",
"realm" => "First project",
"require" => "valid-user"
))
fastcgi.server = ("/trac" =>
("trac" =>
("socket" => "/tmp/trac-fastcgi.sock",
"bin-path" => fcgi_binary,
"check-local" => "disable",
"bin-environment" =>
("TRAC_ENV_PARENT_DIR" => "/var/lib/trac")
)
)
)
}
2. 安裝及設定Trac
$ apt-get install trac
插件
Trac 1.1預設已經提供了不少插件,但仍不足夠,最起碼都要裝Account Manager,那樣用戶才能在網頁上更改自己的密碼。
sudo apt-get install python-setuptools
sudo easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.11
路徑設定
sudo mkdir $TRAC_ENV
sudo chown -R www-data:www-data $TRAC_ENV
sudo chmod -R go-rwx $TRAC_ENV
sudo mkdir $PRIVATE
sudo chown -R www-data:www-data $PRIVATE
sudo chmod -R go-rwx $PRIVATE
建立Admin帳戶
sudo -u www-data htpasswd -c $PRIVATE/passwd admin
雖然我所採用的Trac Layout為Multiple Trac Project,但不代表每次增加Project都要把所有設定寫一遍,你可以把一些基本的設定放在/etc/trac/trac.ini裏,以下我的設定:
[attachment]
max_size = 1048576
[account-manager]
password_file = /var/lib/private/passwd
password_store = HtPasswdStore
[components]
webadmin.* = enabled
acct_mgr.admin.accountmanageradminpage = enabled
acct_mgr.api.accountmanager = enabled
acct_mgr.db.sessionstore = enabled
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.pwhash.htpasswdhashmethod = enabled
acct_mgr.pwhash.htdigesthashmethod = enabled
acct_mgr.web_ui.accountmodule = enabled
acct_mgr.web_ui.loginmodule = enabled
acct_mgr.web_ui.registrationmodule = enabled
以上設定做了以下修改:
- 增加附件的大小限制
- 所有Trac Project均使用同一個密碼檔案
- 使用account manager及webadmin plugin
基本的Trac管埋
1. 建立Trac Project
假設這個項目叫ProjectA,那麼要先用以下指令建立Trac Project
CODENAME=ProjectA
PROJECT=$TRAC_ENV/$CODENAME
sudo -u www-data trac-admin $PROJECT initenv
因為lighttpd會用www-data存取資料,所以要用www-data用戶來建立,不過之後的指令用root來跑也沒什麼問題.
2. 設定權限
在我們的系統裏有三種權限,一是admin,能為所欲任,什麼事都能做到,跟著是項目的manager,可以修改項目的設定,增減milestone、修改其他人權限等等,然後是權限最低的developer。
cd $PROJECT
trac-admin . permission remove anonymous '*' #首先移除anonymouse,不讓沒有權限的人觀看
trac-admin . permission add developer MILESTONE_VIEW REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW TICKET_CREATE TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW WIKI_CREATE WIKI_MODIFY WIKI_VIEW
trac-admin . permission add manager MILESTONE_ADMIN CONFIG_VIEW WIKI_ADMIN SEARCH_VIEW TICKET_ADMIN ROADMAP_ADMIN TIMELINE_VIEW ROADMAP_VIEW TICKET_VIEW REPORT_ADMIN
trac-admin . permission add admin TRAC_ADMIN
3. 增加用戶
Trac本身沒有自己的帳戶管理,複雜的可以選擇使用ldap,簡單的什麼都沒有,任所有人修改,當然在公司的立場裏是不可能的,那麼進一步,直接用htaccess來管理亦可以,故此增加帳戶不過是……
htpasswd -c $PRIVATE/passwd username
然後記得為該用戶設定權限
trac-admin $PROJECT permission add ${username} developer
沒有留言:
發佈留言