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