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.
Dependencies
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
Installation
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
</Directory>
# 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
</Directory>
# use the following for one authorization for all projects
<LocationMatch "/projects/[[:alnum:]]+/login">
AuthType Basic
AuthName "trac"
AuthUserFile /etc/apache2/htpasswd
Require valid-user
</LocationMatch>
## Using multiple projects
<Location /projects>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/trac
PythonOption TracUriRoot /projects
</Location> 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 http://trac.edgewall.org/wiki/TracAdmin.
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 https://svn.edgewall.org/repos/trac/trunk trac
To install this version, use:
cd trac python setup.py install --prefix=/usr