THE WILD MAN
solutions
Installer Subversion avec Apache

Ce document explique comment installer simplement Subversion couplé à Apache.

Les avantages de cette liaison sont l'authentification des utilisateurs (les mots de passe sont chiffrés sur le réseau), la journalisation des échanges est complète et l'accès fonctionne généralement à travers les pare-feu.

On part d'une machine avec Ubuntu 12.10 64bits.

2 méthodes pour installer Apache & Subversion:

Ce document fait référence aux sites httpd.apache.org et subversion.apache.org.

Installation à partir des paquets Ubuntu

Cette méthode permet d'installer Apache et Subversion dans les emplacements par défaut. Ces modules seront mis à jour automatiquement par Ubuntu.

Installer Apache

  1. Ouvrir un terminal
  2. sudo apt-get install apache2

Apache est lancé en tant que service au démarrage de la machine.

La configuration est située dans /etc/apache2/ et apache2.conf est le fichier principal.

Le site web est situé dans /var/www/

Démarrer et arrêter Apache se fait en exécutant sudo service apache2 start et sudo service apache2 stop

Installer Subversion

  1. Ouvrir un terminal
  2. sudo apt-get install subversion libapache2-svn
  3. sudo a2enmod auth_digest
  4. sudo a2enmod authz_svn
  5. sudo service apache2 restart

Configuration

  1. Ouvrir un terminal
  2. Création du dépôt
    svnadmin create /home/vincent/repository
  3. Création du fichier d'authentification avec 2 utilisateurs
    htdigest -c /home/vincent/repository/digest "Repository" vincent
    htdigest /home/vincent/repository/digest "Repository" joe
  4. Configurer les droits d'accès aux branches du dépôt en créant le fichier /home/vincent/repository/access
    [/]
    vincent = rw
    joe = r
  5. Lier Apache au dépôt en ajoutant à la fin de /etc/apache2/apache2.conf
    <Location /repository>
    DAV svn
    SVNPath /home/vincent/repository
    AuthType Digest
    AuthName "Repository"
    AuthDigestDomain /repository/
    AuthUserFile /home/vincent/repository/digest
    AuthzSVNAccessFile /home/vincent/repository/access
    Require valid-user
    </Location>
  6. Redémarrer Apache
    sudo service apache2 restart

Depuis la machine, d'un navigateur ou de svn, l'url est http://localhost/repository

Voir les documentations de Apache et Subversion pour modifier l'authentification et les droits d'accès au dépôt.

Installation à partir des codes source

Cette méthode est légèrement plus longue à mettre en oeuvre mais permet plus de souplesse, notamment d'installer Apache et Subversion à des endroits personnalisés, ou de faire coexister plusieurs serveurs simultanément, et sans être root.

Dans ce qui suit, PREFIX est le chemin absolu où sont installés les binaires (par exemple /home/vincent/bin).

Si, pendant l'installation des modules, la procédure s'arrête à cause d'une libraire manquante, installez-la à partir du gestionnaire de paquets de Ubuntu.

Installer Apache

  1. Télécharger Apache Portable Runtime depuis apr.apache.org (apr-1.4.6.tar.gz)
  2. Ouvrir un terminal
  3. tar xvf apr-1.4.6.tar.gz
    cd apr-1.4.6
    ./configure --prefix=PREFIX/apr-1.4.6
    make
    make install
  4. Télécharger Apache Portable Runtime Utility depuis apr.apache.org (apr-util-1.5.1.tar.gz)
  5. tar xvf apr-util-1.5.1.tar.gz
    cd apr-util-1.5.1
    ./configure --prefix=PREFIX/apr-util-1.5.1 --with-apr=PREFIX/apr-1.4.6
    make
    make install
  6. Télécharger Apache depuis httpd.apache.org (httpd-2.4.3.tar.gz)
  7. tar xvf httpd-2.4.3.tar.gz
    cd httpd-2.4.3
    ./configure --prefix=PREFIX/httpd-2.4.3 --with-apr=PREFIX/apr-1.4.6 --with-apr-util=PREFIX/apr-util-1.5.1
    make
    make install

La configuration est située dans PREFIX/httpd-2.4.3/conf/ et httpd.conf est le fichier principal.

Le site web est situé dans PREFIX/httpd-2.4.3/htdocs

Démarrer et arrêter Apache se fait en exécutant sudo PREFIX/httpd-2.4.3/bin/apachectl -k start et sudo PREFIX/httpd-2.4.3/bin/apachectl -k stop.

Installer Subversion

  1. Télécharger Subversion depuis subversion.apache.org (subversion-1.7.8.tar.gz)
  2. Ouvrir un terminal
  3. tar xvf subversion-1.7.8.tar.gz
    cd subversion-1.7.8
    ./configure --prefix=PREFIX/subversion-1.7.8 --with-apr=PREFIX/apr-1.4.6 --with-apr-util=PREFIX/apr-util-1.5.1 --with-apxs=PREFIX/httpd-2.4.3/bin/apxs
    make
    make install
  4. Rendre actif les modules relatif à l'authentification et à Subversion dans la configuration d'Apache PREFIX/httpd-2.4.3/conf/httpd.conf
    LoadModule dav_module modules/mod_dav.so
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    LoadModule auth_digest_module modules/mod_auth_digest.so

Configuration

Dans ce qui suit, SVN est le chemin absolu où est installé le dépôt (par exemple /home/vincent/repository).

  1. Ouvrir un terminal
  2. Création du dépôt
    PREFIX/bin/subversion-1.7.8/svnadmin create SVN
  3. Création du fichier d'authentification avec 2 utilisateurs
    PREFIX/bin/httpd-2.4.3/bin/htdigest -c SVN/digest "Repository" vincent
    PREFIX/bin/httpd-2.4.3/bin/htdigest SVN/digest "Repository" joe
  4. Configurer les droits d'accès aux branches du dépôt en créant le fichier SVN/access
    [/]
    vincent = rw
    joe = r
  5. Lier Apache au dépôt en ajoutant à la fin de PREFIX/httpd-2.4.3/conf/httpd.conf
    <Location /repository>
    DAV svn
    SVNPath SVN
    AuthType Digest
    AuthName "Repository"
    AuthDigestDomain /repository/
    AuthUserFile SVN/digest
    AuthzSVNAccessFile SVN/access
    Require valid-user
    </Location>
  6. Redémarrer Apache
    sudo PREFIX/httpd-2.4.3/bin/apachectl -k restart

Depuis la machine, d'un navigateur ou de svn, l'url est http://localhost/repository

Voir les documentations de Apache et Subversion pour modifier l'authentification et les droits d'accès au dépôt.

© 1998-2017