一、概述
trac 是用于软件项目的 wiki 和问题跟踪系统,同时还是 Subversion 的前端。这篇文件介绍如何在 lighttpd 上搭建 trac。
二、安装相关软件
在 Debian / Ubuntu 上安装 lighttpd trac subversion apache2-utils 这几个软件包就行了。安装 apache2-utils 是为了使用里面的 htpasswd 工具。其它的发行版应该类似。
sudo apt-get install lighttpd trac subversion apache2-utils
三、配置 lighttpd
首先启用 rewrite 和 auth 模块,然后用使用此配置文件:
alias.url = (
"/trac/chrome/common/" => "/usr/share/trac/htdocs/",
)
$HTTP["url"] =~ "^/trac/chrome/" {
# no fastcgi
} # end of $HTTP["url"] =~ "^/trac/chrome/"
else $HTTP["url"] =~ "^/trac" {
fastcgi.server = (
"/" => (
(
"bin-path" => "/usr/share/trac/cgi-bin/trac.fcgi",
"socket" => "/tmp/trac.sock",
"check-local" => "disable",
"disable-time" => 1,
"min-procs" => 1,
"max-procs" => 1,
"bin-environment" => (
"TRAC_ENV_PARENT_DIR" => "/var/lib/trac/",
),
),
),
)
} # end of $HTTP["url"] =~ "^/trac"
重启 lighttpd 后,打开浏览器看一下 http://…./trac 是否能用。
四、建立 Subversion 代码仓库
以下假设项目名称为 project01。
sudo mkdir /var/svn
sudo svnadmin create /var/svn/project01
sudo chown -R www-data:www-data /var/svn/project01
sudo chmod -R g+ws /var/svn/project01
即在 /var/svn/project01 建立了一个 Subversion 仓库。
五、配置 trac 项目
sudo mkdir -p /var/lib/trac
sudo trac-admin /var/lib/trac/project01 initenv
刚才这一步会出来个向导,按提示输入 Subversion 的路径。接下来修改权限:
sudo chown -R www-data:www-data /var/lib/trac
sudo chmod -R g+ws /var/lib
六、配置 lighttpd 的用户验证
trac 需要使用 HTTP 来验证用户,通过 lighttpd 的 auth 模块可以实现。
auth.backend = "htpasswd"
$HTTP["url"] =~ "^/trac/project01/" {
auth.backend.htpasswd.userfile = "/var/lib/trac/project01/htpasswd.htaccess"
}
auth.require = (
"/trac/project01/login" => (
"method" => "basic",
"realm" => "Your Project Name Here",
"require" => "valid-user"
)
)
然后用 htpasswd 创建用户,第一次要用 -c 参数新建密码表。下面添加叫 user01 的用户:
htpasswd -c /var/lib/trac/project01/htpasswd.htaccess user01
并输入密码。然后配置该用户在 trac 中的权限,例如把 user01 增加管理员权限:
sudo trac-admin /var/lib/trac/project01 permission user01 add TRAC_ADMIN
七、开始使用
浏览器进入 http://…./trac/project01,开始使用上面的功能。
客户端用 svn 或 TortoiseSVN 提交代码后,在 trac 上应该能看到版本比较。