Edgewall Software

Version 2 (modified by dlin.tw@…, 13 years ago) ( diff )

add trac & svn config

Installing Trac on ArchLinux for Multiple Projects using Mod_Python

ArchLinux is powered by a simple and lightweight package management system. It is release by rolling binary system. Keep update by command line pacman -Syu will get the most recent version.

In following steps, I set these variable for simply input

TROOT=/home/trac  # put the multiple trac project's db
SROOT=/home/svn   # put the multiple project subversion repositories
PRJ=project1      # put each project's name

install packages

install depend packages from binary

pacman -S mod_python python-pysqlite

Download trac from binary

Trac is already on community repository, check /etc/pacman.conf, make sure uncomment the following.

# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/community

SUPFILES=(arch extra !unstable community !testing)

download and install it

pacman -S trac 

or, build trac from source

if want the newest version trac.

edit the /etc/abs/abs.conf, unmark the community

SUPFILES=(arch extra !unstable community !testing)
cd /var/abs/community/network/trac
vi PKGBUILD  # modify the version to the newest version
makepkg -g   # modify PKGBUILD with the correct md5 checksum
makepkg -c   # build binary package file, and clean up work files after build
sudo pacman -A *.pkg.tar.gz  # install it
sudo pacman -U *.pkg.tar.gz  # or, upgrade it, if already installed

configure mod_python

edit /etc/httpd/conf/httpd.conf, append following line

LoadModule python_module /usr/lib/apache/mod_python.so

use following line to restart apache, check /var/log/httpd/error.log, if failed

/etc/rc.d/httpd restart

Tips: you can check it by http://your_server_ip/server-info after following config

edit /etc/httpd/conf/httpd.conf uncomment following line
Include /etc/httpd/conf/extra/httpd-info.conf

edit /etc/httpd/conf/extra/httpd-info.conf modify the "Allow from" to your client ip address

setup subversion for each project

mkdir -p $SROOT/$PRJ mkdir /tmp/$PRJ mkdir /tmp/$PRJ/branches mkdir /tmp/$PRJ/tags mkdir /tmp/$PRJ/trunk svnadmin create $SROOT/$PRJ svn import /tmp/$PRJ file://$SROOT/$PRJ -m "initial import" rm -rf /tmp/$PRJ svn ls -v file://$SROOT/$PRJ # check it

setup trac db for each project

mkdir -p $TROOT

setup by interactive questions

trac-admin $TROOT/$PRJ initenv 

or, by command line parameters

trac-admin $TROOT/$PRJ initenv $PRJ sqlite:db/trac.db svn $SROOT/$PRJ /usr/share/trac/templates

configure apache

chown -R nobody $SROOT $TROOT  # allow httpd's owner 'nobody' could read/write

edit /etc/httpd/conf/httpd.conf,  uncomment following line
Include /etc/httpd/conf/extra/httpd-vhosts.conf

edit /etc/httpd/conf/extra/httpd-vhosts.conf, append following lines
<VirtualHost *:80>
    ServerAdmin dlin@mail.taifex.com.tw
    DocumentRoot /home/trac/
    ErrorLog /var/log/httpd/trac.error_log
    CustomLog /var/log/httpd/trac.access_log common
    <Location /prjs> #set up Trac handling
        SetHandler mod_python
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnvParentDir /home/trac     <-- change to $TROOT value
        PythonOption TracUriRoot /prjs
Note: See TracWiki for help on using the wiki.