Installation de trac
Trac est une interface web écrite en python. Son installation fait donc appel à des commandes spécifiques relatives à ce language.
On installe les dépendances nécessaires :
- sudo apt-get install python python-dev python-svn python-subversion python-setuptools libapache2-mod-python libapache2-mod-python-doc
Puis on lance la série de commande suivante :
- #On récupère tout d'abord l'archive de la dernière version du logiciel dans le home de l'utilisateur en court
- cd ~
- wget https://download.edgewall.org/trac/Trac-1.2.2.tar.gz
- # On décompresse l'archive téléchargée
- tar -xvzf Trac-1.2.2.tar.gz
- # On installe les dépendances python
- sudo easy_install Pygments
- sudo easy_install Genshi
- #On se déplace dans le répertoire créé sur au désarchivage
- cd Trac-1.2.2
- sudo python ./setup.py install
Créer l’instance de trac
Nous allons créer les instances de tracs dans le répertoire /var/trac
, il est donc nécessaire de le créer au préalable :
- sudo mkdir -p /var/trac
On peut passer alors à la création de l’instance en rapport avec le dépôt subversion précédemment créé :
- sudo trac-admin /var/trac/domaine.tld initenv
Trac-admin posera alors quelques questions :
- Project Name : donnez lui un titre, ici "
arscenic.org
". - Database connection string :
sqlite:db/trac.db
(par défaut base de donnée sqlite)
À la fin, l’installation de trac créera une arborescence dans /var/trac/domaine.tld
qui devrait ressembler à celle ci :
- ls -lsa /var/trac/arscenic.org
- total 44
- 4 drwxr-xr-x 9 root root 4096 avr 19 02:34 .
- 4 drwxr-xr-x 3 root root 4096 avr 19 02:34 ..
- 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 attachments
- 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 conf
- 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 db
- 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 htdocs
- 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 log
- 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 plugins
- 4 -rw-r--r-- 1 root root 98 avr 19 02:34 README
- 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 templates
- 4 -rw-r--r-- 1 root root 27 avr 19 02:34 VERSION
Il est nécessaire que la base de donnée soit lisible par l’utilisateur du serveur web (sur Debian ou Ubuntu c’est en général "www-data") :
- sudo chown www-data:www-data -Rvf /var/trac/domaine.tld/
On va ensuite lui ajouter le dépot /var/svn/domaine.tld/
:
- trac-admin /var/trac/domaine.tld/
- repository add domaine.tld /var/svn/domaine.tld/
- quit
Modification du virtiualhost Apache pour afficher Trac
On va maintenant modifier le virtualhost Apache que l’on a fait auparavant pour ajouter Trac comme page d’accueil de notre sous domaine.
On édite le fichier :
- sudo nano /etc/apache2/sites-available/svn.conf
Et on remplace son contenu par le suivant :
- <VirtualHost *:80>
- ServerAdmin admin@domaine.tld
- ServerName svn.domaine.tld
- DocumentRoot /var/trac/domaine.tld/htdocs/
- <Location />
- SetHandler mod_python
- PythonInterpreter main_interpreter
- PythonHandler trac.web.modpython_frontend
- PythonOption TracEnv /var/trac/domaine.tld
- PythonOption TracUriRoot /
- </Location>
- # L'authentification pour trac est basée sur les même utilisateurs qu'en svn
- <Location "/trac/login">
- AuthType Basic
- AuthName "Trac"
- AuthUserFile /var/svn/domaine.tld/conf/passwd
- Require valid-user
- </Location>
- DirectoryIndex trac/
- ErrorLog /var/log/apache2/error.trac-domaine.tld
- CustomLog /var/log/apache2/access.trac-domaine.tld combined
- LogLevel debug
- # SVN n'est accessible que sur /svn
- <Location /svn>
- DAV svn
- SVNPath /var/svn/domaine.tld
- # our access control policy
- # try anonymous access first, resort to real
- # authentication if necessary.
- # how to authenticate a user
- AuthType Basic
- AuthName "Subversion repository"
- AuthUserFile /var/svn/domaine.tld/conf/passwd
- Satisfy Any
- AuthzSVNAccessFile /var/svn/domaine.tld/conf/authz
- Require valid-user
- </Location>
- </VirtualHost>
On recharge ensuite la configuration d’Apache :
- /etc/init.d/apache2 force-reload
Mise en place d’un fichier robots.txt
Il peut être utile d’empêcher l’indexation des pages de trac par les moteurs de recherche pour des raisons de performances serveur ou de confidentialité. Pour cela il suffit de créer un fichier robots.txt propre au domaine de trac :
- nano /var/trac/domaine.tld/htdocs/robots.txt
Et voici le contenu à coller dans le fichier robots.txt :
- User-agent: *
- Disallow: /
Ainsi on interdit aux robots des moteurs l’indexation de toutes les pages de notre trac.
On ajoute alors dans la déclaration du virtualhost la directive suivante qui empêche l’URL avec robot.txt d’être traitée par mod_python :
- <Location /robot.txt>
- SetHandler None
- </Location>