操作
如何使用Lighttpd设置Trac¶
Trac是一个用于软件开发项目的增强型维基和问题跟踪系统。
使用FastCGI的常见设置¶
$HTTP["host"] == "trac.example.com" {
server.document-root = "/www/htdocs/sites/trac.example.com"
alias.url = (
"/trac_prefix/chrome/common/" => "/usr/share/trac/htdocs/",
)
# rewrite for multiple svn project
url.rewrite-final = (
"^/trac_prefix/[^/]+/chrome/common/(.*)" => "/trac_prefix/chrome/common/$1",
)
$HTTP["url"] =~ "^/trac_prefix/chrome/" {
# no fastcgi
} # end of $HTTP["url"] =~ "^/trac_prefix/chrome/"
else $HTTP["url"] =~ "^/trac_prefix" {
fastcgi.server = (
"/trac_prefix" => ( # if trac_prefix is empty, use "/"
(
# options needed to have lighty spawn trac
"bin-path" => "/usr/share/webapps/trac/0.9.3/hostroot/cgi-bin/trac.fcgi",
"min-procs" => 1,
"max-procs" => 1,
"bin-environment" => (
"TRAC_ENV_PARENT_DIR" => "/var/lib/trac/",
),
# options needed in all cases
"socket" => "/tmp/trac.sock",
"check-local" => "disable",
# optional
"disable-time" => 1,
# needed if trac_prefix is empty; and you need >= 1.4.23
"fix-root-scriptname" => "enable",
),
),
)
} # end of $HTTP["url"] =~ "^/trac_prefix"
} # end of $HTTP["host"] == "trac.example.com"
将 "/trac_prefix" (既不是 "/trac_prefix/" 也不是 "trac_prefix/") 更改为其他任何内容,或者如果你愿意,甚至可以删除它。
如果你只想一个svn项目,那么将 "TRAC_ENV_PARENT_DIR" 替换为 "TRAC_ENV",并将 "/var/lib/trac" 更改为正确的子目录。
当然,你也可以使用spawn-fcgi来启动trac应用程序。
TRAC_ENV_PARENT_DIR=/var/lib/trac/ spawn-fcgi -n -s /tmp/trac.sock -- /usr/share/webapps/trac/0.9.3/hostroot/cgi-bin/trac.fcgi
使用CGI的常见设置¶
请参阅更新的Trac设置文档
Fedora设置¶
var.fcgi_binary="/usr/bin/python /usr/lib/python2.5/site-packages/Trac-0.11.4-py2.5.egg/trac/web/fcgi_frontend.py" # Change to point to correct version
$HTTP["host"] == "trac.example.com" {
fastcgi.server = ( "/" =>
( "trac" =>
( "socket" => "/tmp/trac-fastcgi.sock",
"bin-path" => fcgi_binary,
"check-local" => "disable",
"bin-environment" =>
( "TRAC_ENV_PARENT_DIR" => "/path/to/trac",
"PYTHONPATH" => "/usr/lib/python2.5/site-packages",
"PYTHON_EGG_CACHE" => "/tmp/trac"
),
"fix-root-scriptname" => "enable",
)
)
)
$HTTP["url"] =~ "^/.*/login$" {
auth.require = ( "/" => (
"method" => "digest",
"realm" => "Trac",
"require" => "valid-user"
)
)
}
}
分离设置¶
lighttpd.net上的web服务器运行在一个chroot环境中,它将web服务器根目录与系统的其余部分和子版本库分离开来。
由于Trac需要物理访问,它无法以已充分文档化的方式安装。
trac提供了一个分离的tracd,它在本地端口9090启动
$ tracd -b 127.0.0.1 -p 9090 /path/to/trac/lighttpd/
此外,如果你想通过除了"/"以外的基础URL访问你的代理Trac安装,你可以在之前的tracd命令行中添加以下开关
--base-path=/some/path
为了将所有来自web服务器的请求转发到Trac,使用了文档:ModProxy
$HTTP["host"] == "trac.lighttpd.net" {
# forward all requests at trac.lighttpd.net to the tracd
proxy.server = ("" => ( "trac" => ( "host" => "127.0.0.1", "port" => 9090 )))
}