Home page > Web services > Subversion et Trac > Configuration d’Apache pour servir SVN

Configuration d’Apache pour servir SVN

Activer les modules apache nécessaires

Le module fastcgi pour apache2 est dans les dépots "non-free" de debian. Vérifiez tout d’abord d’avoir cette ligne dans votre fichier /etc/apt/sources.list :

  1. deb http://ftp.debian.org/debian/ squeeze non-free

ou celle ci :

  1. deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free

On installe les modules au préalable si ce n’est déjà fait :

  1. apt-get install libapache2-mod-fastcgi libapache2-svn

Puis on active les modules nécessaires :

  1. sudo a2enmod alias
  2. sudo a2enmod dav
  3. sudo a2enmod dav_fs
  4. sudo a2enmod dav_lock
  5. sudo a2enmod dav_svn
  6. sudo a2enmod fastcgi

Vous trouverez un exemple de configuration d’apache concernant svn dans /etc/apache2/mods-available/dav_svn.conf

Configuration du virtualhost pour apache

On va créer un nouveau fichier dans les sites-available d’apache qui configurera la mise à disposition de notre dépôt :

  1. sudo nano /etc/apache2/sites-available/svn

Tous nos dépôts sont dans le même répertoire, on active donc svn de cette manière, ceci est le contenu minimum pour chaque virtualhost servant un dépot subversion (NB : il est nécessaire de recopier ceci et de le modifier pour chaque virtualhost souhaité) :

  1. <VirtualHost *:80>
  2.         ServerAdmin admin@domaine.tld
  3.         ServerName svn.domaine.tld
  4.         # SVN n'est accessible que sur /svn
  5.        <Location /svn>
  6.                 DAV svn
  7.                 SVNPath /var/svn/domaine.tld
  8.                 # our access control policy
  9.                 # try anonymous access first, resort to real
  10.                 # authentication if necessary.
  11.                 # how to authenticate a user
  12.                 AuthType Basic
  13.                 AuthName "Subversion repository"
  14.                 AuthUserFile /var/svn/domaine.tld/conf/passwd
  15.                 Satisfy Any
  16.                 AuthzSVNAccessFile /var/svn/domaine.tld/conf/authz
  17.                 Require valid-user
  18.         </Location>
  19. </VirtualHost>

Il est nécessaire qu’Apache ait accès à l’ensemble du dépot ... donc pour en être sûr... lancer la commande :

  1. sudo chown -Rvf www-data:www-data /var/svn/domaine.tld

Enfin on active tout cela et relance Apache :

  1. sudo a2ensite svn
  2. sudo /etc/init.d/apache2 restart

Le dépot est alors accessible dans un navigateur à l’adresse : http://svn.domaine.tld/svn. Une boite de dialogue demandant nom d’utilisateur et mot de passe s’affiche si vous n’avez pas autorisé la lecture lors de la configuration du dépot. Vous devriez voir s’afficher : svn - Revision 0: / si tout s’est passé correctement.

Si oui, votre serveur svn est utilisable. Vous pouvez donc faire un checkout du dépot dans le répertoire local domaine.tld :

  1. svn co http://svn.domaine.tld/svn/ domaine.tld

Y ajouter un un répertoire de test par exemple :

  1. cd domaine.tld
  2. mkdir repertoire_test
  3. svn add repertoire_test
  4. svn commit -m "un répertoire de test"

4 comments


  • On 26 May 2010 at 18:36, by hornetbzz Replying to: Configuration d’Apache

    Merci, c’est vraiment très clair.

    3 points à noter:

    1) d’après ce ticket, il semblerait que le module fcgi entre en conflit avec le module deflate d’Apache.

    2) Par ailleurs, je n’ai pas trouvé le module fcgi dans les dépôts. Peut être a-t-il disparu suite à l’introduction de fcgid ?

    3) Trac recommande donc l’utilisation du module fcgid.

    Finalement la question:

    Dans le cas de l’utilisation du module fcgid, comment configurer Apache ?

    Merci d’avance

    PS: je ne sais pas si c’est ma config ou le serveur, mais les fleches de deplacement ne fonctionnent pas dans la zone de texte du message.

    Reply to this message

    • On 26 May 2010 at 22:05, by hornetbzz Replying to: Configuration d’Apache

      hum j’ai retrouvé le dépôt, d’ailleurs mentionné en entête du tuto, ... désolé

      Reply to this message

    • On 26 May 2010 at 23:08, by Quentin Drouet Replying to: Configuration d’Apache

      Pour le point 1, je n’ai pas personnellement ce problème même si j’utilise les deux personnellement

      Pour le point 2, vous avez apparemment trouvé la solution dans le prochain post

      Question subsidiaire, du coup, est ce que cette solution fonctionne encore? ou est ce nécessaire de mettre impérativement à jour le tuto....

      Reply to this message

  • On 22 August 2010 at 03:57, by hornetbzz Replying to: Configuration d’Apache

    Un petit commentaire dans le cas d’un Apache2 Debian non compilé avec plusieurs VHOSTS :

    J’ai eu pas mal de difficultés à faire fonctionner plusieurs virtual hosts, correspondant chacun à un projet sous /usr/share/trac/projects, avec le module fast_cgi.

    Pour cela, j’ai dû paramétrer trac.fcgi de la façon suivante :
    try:
    import os
    import pkg_resources
    if ’TRAC_ENV’ not in os.environ and \
    ’TRAC_ENV_PARENT_DIR’ not in os.environ:
    # MODIFIED hornetbzz
    os.environ[’TRAC_ENV_PARENT_DIR’] = ’/usr/share/trac/projects’
    ...

    J’ai également dû adapter la configuration de chaque vhost de la manière suivante, par exemple ici avec test.net :
    DirectoryIndex trac/test.net

    Voila si ça peut en aider d’autres,

    Slts

    Reply to this message


Any message or comment?
  • (To create paragraphs, you simply leave blank lines.)

Who are you? (optional)
  • [Sign In]