Version 2 (modified by 17 years ago) ( diff ) | ,
---|
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.
[community] # 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/ ServerName 192.168.13.203 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 </Location> </VirtualHost>