Nous allons créer deux sous-domaines sous Plesk :

  • svn.mydomain.com : pour gérer le subversion
  • trac.mydomain.com : pour gérer trac

Pour information, Subversion (en abrégé svn) est un système de gestion de versions, distribué sous licence Apache et BSD. Il a été conçu pour remplacer CVS. Ses auteurs s’appuient volontairement sur les mêmes concepts (notamment sur le principe du dépôt centralisé et unique) et considèrent que le modèle de CVS est le bon, et que seule son implémentation est en cause. Le projet a été lancé en février 2000 par CollabNet, avec l’embauche par Jim Blandy de Karl Fogel, qui travaillait déjà sur un nouveau gestionnaire de version.

Trac est un système Open Source de gestion complète de projet par Internet, développé en Python.

Trac inclut :
* Un Wiki,
* Gestion de feuilles de route,
* Historique,
* Rapport de bugs,
* Explorateur subversion.

Nous allons installer le logiciel subversion sur notre machine.

apt-get install subversion

Installer le module Webdav pour apache 2

apt-get install mod_dav_svn

On vérifie la version du SVN ainsi que présence du module webdav.

svn --version

On crée le répertoire dans notre sous domaine pour la repository.

mkdir /var/www/vhosts/mydomain.com/subdomains/svn/httpdocs/repo

Création d’une repositery vide dans notre répertoire.

svnaddmin create /var/www/vhosts/mydomain.com/subdomains/svn/httpdocs/repo

On défini les accès a notre repository pour Apache et SVN.

chmod -R 777 /var/www/vhosts/mydomain.com/subdomains/svn/httpdocs/repo

Nous allons, maintenant, installer le logiciel TRAC sur notre machine.
Soit par le dépot :

apt-get install trac

Soit par easy_install :

apt-get install python-setuptools
easy_install Trac

On crée le répertoire dans notre sous domaine pour l’environnement TRAC.

mkdir /var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo

Génère l’environnement de TRAC dans notre répertoire.

trac-admin /var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo initenv

On se déplace dans le répertoire du sous-domaine.

cd /var/www/vhosts/mydomain.com/subdomains/trac/httpdocs

On change le groupe de permissions de tracrepo et sous répertoire en psacln qui est l’utilisateur Apache de Plesk.

chgrp -R psacln *

On change le propriétaire de tracrepo et sous répertoire avec l’utilisateur FTP du domaine (mydomainuser : à modifier ci-dessous).

chown -R mydomainuser *

Gestion de l’Authentification :

La protection de l’SVN et du TRAC se fera à l’aide d’un login Apache. Pour ceci nous allons créer un fichier de mot de passe :

htpasswd -c /etc/auth-file

Pour ajouter un utilisateur :

htpasswd /etc/auth-file

Configuration d’apache
Pour le fichier /var/www/vhosts/mydomain.com/subdomains/trac/conf/vhost.conf :

<Location />
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonInterpreter main_interpreter
PythonOption TracEnv /var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo
PythonOption TracUriRoot /
SetEnv PYTHON_EGG_CACHE /tmp
AuthType Basic
AuthName « myproject »
AuthUserFile /etc/auth-file
Require valid-user
</Location>

Pour le fichier /var/www/vhosts/mydomain.com/subdomains/svn/conf/vhost.conf :

<Location />
DAV svn
SVNPath /var/www/vhosts/mydomain.com/subdomains/svn/httpdocs/repo
AuthType Basic
AuthName « myproject SVN »
AuthUserFile /etc/auth-file
Require valid-user
</Location>

Ne pas oublier de rendre possible en lecture et écriture :
/var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo/db
Et
/var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo/db/trac.db

On demande à Plesk de prendre en compte notre configuration :

/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=mydomain.com 

On relance Apache

service httpd restart

Penser à configurer votre TRAC dans le fichier :
/var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo/conf/trac.ini.

Pour donner les droits admins à un user sur Trac :

trac-admin /var/www/vhosts/mydomain.com/subdomains/trac/httpdocs/tracrepo/ permission add user TRAC_ADMIN

Sources :

http://www.chaodisiaque.com/article-installation-svn-trac-307.html

http://cms.ersezer.com/index.php/menuwebdev/58-contentplesksvntrac.html