Project

General

Profile

HowToSetupTrac » History » Revision 11

Revision 10 (Anonymous, 2006-09-22 08:29) → Revision 11/18 (zachera, 2008-10-18 23:26)

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"` 

 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 [[TracInstall|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>