The following instructions will allow you to install Trac with Apache and mod_python.

Please note that the Trac installation instructions promote mod_wsgi instead of mod_python.


For the installation of Trac we need Python, as well as Apache and Subversion. Therefor install apache2 and Subversion.

Trac is programmed in Python and therefor a module for the usage of python in apache is required. Since Python 2.5 and apache play well together using the mod-python, we are going to use it for the following installation as well.

apt-get install libapache2-mod-python
apt-get install python-setuptools

You may have to stop your apache2 server before trying to install libapache2-mod-python:

/etc/init.d/apache2 stop


To install Trac, we can now just use the version in the repository by typing:

apt-get install trac

For the usage of multiple projects in trac, you can define the apahe-configuration file (/etc/apache2/conf.d/trac.conf) as follows:

# Trac static content                                                           
    Alias /trac "/usr/share/trac/htdocs"                                        
    <Directory "/usr/share/trac/htdocs">                                        
                Options Indexes MultiViews                                      
                AllowOverride None                                              
                Order allow,deny                                                
                Allow from all                                                  
# Trac project directory (for project listing)
    <Directory "/var/www/projects">                                             
        AllowOverride None                                                      
        Options Indexes +ExecCGI MultiViews FollowSymLinks                      
        AddHandler cgi-script .cgi                                              
        Order allow,deny                                                        
        Allow from all                                                          
# use the following for one authorization for all projects                      
<LocationMatch "/projects/[[:alnum:]]+/login">             
    AuthType Basic                                                              
    AuthName "trac"                                                             
    AuthUserFile /etc/apache2/htpasswd                         
    Require valid-user                                                          
## Using multiple projects
<Location /projects>                                                            
   SetHandler mod_python                                                        
   PythonInterpreter main_interpreter                                           
   PythonHandler trac.web.modpython_frontend                                    
   PythonOption TracEnvParentDir /var/trac                                      
   PythonOption TracUriRoot /projects                                           

Furthermore, for a project listing, you need the following index.cgi in /var/www/projects:

This is a perl script and therefore you need perl installed.

use strict;

my $trac_path = "/var/trac";
my $trac_location = "/projects";
my $projectAvailable = "false";

# Send header
print "Content-Type: text/html\n\n";

# Send content
print "<html>\n";
print " <head>\n";
print "  <title>Project listing</title>\n";
print " </head>\n\n";
print " <body>\n";
print "   <h1>Project listing</h1>\n";
print "   <ul id=\"trac\">\n";

opendir(ROOT, $trac_path)
        or die "Unable to open root directory ($trac_path)";

You can now create new projects using trac-admin like described on

If you would like to use the latest version of Trac (right now 0.11), you can get the version from subversion using:

svn co trac

To install this version, use:

cd trac
python install --prefix=/usr

TracApacheModPython (last edited 2011-09-30 10:00:33 by azimout)