项目

通用

个人资料

操作

如何使用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 )))
}

mathieumg将近13年前更新 · 18次修订