= Trac and mod_python =
Trac 0.8 and later (not yet released) supports [http://www.modpython.org/ mod_python], which speeds up Trac's response times considerably and permits use of many Apache features not possible with tracd/mod_proxy.
== Simple configuration ==
Here's a typical Trac CGI/Apache setup:
{{{
ScriptAlias /trac/myproject /path/to/python/share/trac/cgi-bin/trac.cgi
SetEnv TRAC_ENV /var/svn/trac/myproject
}}}
The equivalent mod_python setup is:
{{{
SetHandler mod_python
PythonHandler trac.ModPythonHandler
PythonOption TracEnv /var/svn/trac/myproject
}}}
''Note: you will need to create a real physical {{{trac/}}} directory (name matches the first location path segment from the above example) inside your !DocumentRoot so that Trac can figure out the correct base location. That seems to be a problem (or feature?) with mod_python.''
== Setting up multiple projects ==
While the Trac mod_python handler does not yet support multiple projects directly, you can configure it so that multiple projects can be hosted, as can be seen in the following simple example:
{{{
SetHandler mod_python
PythonHandler trac.ModPythonHandler
PythonOption TracEnv "/var/www/projects/trac"
PythonOption TracEnv "/var/www/projects/mediatis-dwt"
}}}
This sets up two projects. The disadvantage of the approach used here is that you need one additional {{{}}} directive per Trac instance. There may very well be better ways to accomplish this.
'''A word of warning''': Don't be tempted into using the [http://www.modpython.org/live/current/doc-html/pyapi-interps.html support for multiple python interpreters]! There appears to be a problem with loading the ClearSilver library (and/or python bindings) more than once per process. When you try to use multiple interpreters, every instance other than the first instance you accessed will fail with an import error on {{{neo_cs}}}.