HowToSetupTrac » History » Revision 12
Revision 11 (zachera, 2008-10-18 23:26) → Revision 12/18 (cuerty, 2009-06-07 23:32)
h1. How to setup trac with Lighttpd
"Trac":http://www.edgewall.com/trac/ is an enhanced wiki and issue tracking system for software development projects.
lighttpd.net is using it as its bug-tracking system and web-frontend for "subversion":http://subversion.tigris.org/.
h2. Common setup using FastCGI
<pre>
$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 = (
"/" => (
(
"bin-path" => "/usr/share/webapps/trac/0.9.3/hostroot/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_prefix"
} # end of $HTTP["host"] == "trac.example.com"
</pre>
Change "/trac_prefix" (neither "/trac_prefix/" nor "trac_prefix/", nor "trac_prefix") to anything else or even remove it if you want.
'''For top level setup:''' In order to have Trac running at the top level of a virtual host, you also need an @alias.url@ entry for `"" => "/path/to/trac.fcgi"` and "fix-root-scriptname" => "enable" in @fastcgi.server@.
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.
h2. Common setup using CGI
Take a look at the [[TracInstallPlatforms|updated Trac setup documentation]]
h2. 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 [[TracInstall|well documented way]].
trac provides a seperated tracd which is started locally at port 9090:
<pre>
#!ShellExample
$ tracd -b 127.0.0.1 -p 9090 /path/to/trac/lighttpd/
</pre>
To forward all requests from the webserver to trac the "proxy module":http://www.lighttpd.net/documentation/proxy.html is used:
<pre>
$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 )))
}
</pre>