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 [[ApacheMySQLPHP|apache2]] and [[SubversionInstall|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"
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
# Trac project directory (for project listing)
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
AuthType Basic
AuthName "trac"
AuthUserFile /etc/apache2/htpasswd
Require valid-user
## Using multiple 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.
{{{
#!/usr/bin/perl
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 "\n";
print "
\n";
print " Project listing\n";
print " \n\n";
print " \n";
print " Project listing
\n";
print " \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
}}}