Project

General

Profile

Actions

HowToSetupTrac » History » Revision 14

« Previous | Revision 14/18 (diff) | Next »
stbuehler, 2009-08-02 17:56


How to setup trac with Lighttpd

Trac is an enhanced wiki and issue tracking system for software development projects.

Common setup using 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" 

Change "/trac_prefix" (neither "/trac_prefix/" nor "trac_prefix/", nor "trac_prefix") to anything else or even remove it if you want.

If you only want one svn project, then replace "TRAC_ENV_PARENT_DIR" with "TRAC_ENV" and change "/var/lib/trac" to the correct subdirectory.

You can use spawn-fcgi to spawn the trac application too, of course.

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

Common setup using CGI

Take a look at the updated Trac setup documentation

Separated setup

The webserver at lighttpd.net is living in a chroot which separates the webserver-root from the rest of the system and the subversion repositories.

As trac requires physical access it couldn't be installed in the well documented way.

trac provides a seperated tracd which is started locally at port 9090:

$ tracd -b 127.0.0.1 -p 9090 /path/to/trac/lighttpd/

To forward all requests from the webserver to trac the Docs:ModProxy is used:

$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 )))
}

Updated by stbuehler over 14 years ago · 14 revisions