Edgewall Software
Home
Trac
Trac Hacks
Genshi
Babel
Bitten
Home
Download
Documentation
Mailing Lists
License
FAQ
Search:
Login
Preferences
Help/Guide
About Trac
Wiki
Timeline
Roadmap
Browse Source
View Tickets
New Ticket
Search
Context Navigation
+0
Start Page
Index
History
Editing ModPython
Adjust edit area height:
8
12
16
20
24
28
32
36
40
Edit side-by-side
= Trac and mod_python = Trac 0.7.1 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 <Location /trac/myproject> SetEnv TRAC_ENV /var/svn/trac/myproject </Location> }}} The equivalent mod_python setup is: {{{ <Location /trac/myproject> SetHandler mod_python PythonHandler trac.ModPythonHandler PythonOption TracEnv /var/svn/trac/myproject </Location> }}} ''Note: you might 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 == === The hard way === The Trac mod_python handler can be configured to serve multiple projects, as can be seen in the following simple example: {{{ <LocationMatch /trac/[[:alnum:]]+> SetHandler mod_python PythonHandler trac.ModPythonHandler </LocationMatch> <Location /trac/exampleone> PythonOption TracEnv "/var/www/projects/exampleone" </Location> <Location /trac/exampletwo> PythonOption TracEnv "/var/www/projects/exampletwo" </Location> }}} This sets up two projects. The disadvantage of the approach used here is that you need one additional {{{<Location>}}} directive per Trac instance. Although you may be able to eliminate this using some mod_rewrite tricks, you can also make use of the built-in support for multiple projects, as described in the next section. === Or the easy way === The Trac mod_python handler handler supports a configuration option similar to Subversion's {{{SvnParentPath}}}, called {{{TracEnvParentDir}}}: {{{ <LocationMatch /trac> SetHandler mod_python PythonHandler trac.ModPythonHandler PythonOption TracEnvParentDir "/var/www/projects" </LocationMatch> }}} When you request the {{{/trac}}} URL, you will get a (currently very simple) listing of all subdirectories of the directory you set as {{{TracEnvParentDir}}}. Selecting any project in the list will bring you to the corresponding Trac instance. You should make sure that the configured directory only contains Trac environment directories that match the currently installed Trac version, because that is not checked prior the the generation of the project list. === Adding authentication === Adding authentication is straightforward in both cases. For example: {{{ <LocationMatch /trac/[[:alnum:]]+/login> AuthType Basic AuthName "Trac" AuthUserFile /var/www/passwd Require valid-user </LocationMatch> }}} ---- See also TracGuide, TracInstall, TracMultipleProjects
Note:
See
WikiFormatting
and
TracWiki
for help on editing wiki content.
Change information
Your email or username:
E-mail address and name can be saved in the
Preferences
Comment about this change (optional):
Note:
See
TracWiki
for help on using the wiki.