Installation

Pré-requis :

  1. disposer d'un espace applicatif, par exemple /applis/svnwebadmin/
  2. disposer d'un serveur Apache2 avec les modules mod_php5, mod_dav, et mod_dav_svn (éventuellement mod_ldap et mod_authnz_ldap si votre base d'utilisateur utilise un annuaire LDAP). Nous vous conseillons
  3. régler le DocumentRoot pour le faire pointer par exemple sur /applis/svnwebadmin/www/

Si vous travaillez sous une plateforme Debian, pour déployer votre serveur Apache/PHP, nous vous conseillons d'utiliser le logiciel pkgi

Voici comment procéder pour installer SVNWebAdmin sur votre serveur :

  1. récupérer les sources de la dernière version de svnwebadmin :
    cd /applis/svnwebadmin/
    svn co https://subversion.cru.fr/svnwebadmin/trunk swa
    
  2. créer un répertoire /applis/svnwebadmin/www/ :
    mkdir /applis/svnwebadmin/www/
    
  3. créer un fichier prepend.php dans /applis/svnwebadmin/www/ :
    <?php
     
    $delim = PATH_SEPARATOR;
    $classpath  = '.'.$delim;
    $classpath .= dirname(__FILE__).'/../swa/lib/pear'.$delim;
    $classpath .= dirname(__FILE__).'/../swa/lib/classes'.$delim;
    $classpath .= ini_get('include_path');
    ini_set('include_path',$classpath);
  4. créer un fichier index.php dans /applis/svnwebadmin/www/ :
    <?php
     
    require_once dirname(__FILE__).'/prepend.php';
     
    $title            = 'SVNWebAdmin demo';
    $repository_path  = dirname(__FILE__).'/../repository';
    $repository_url   = 'http://'.$_SERVER['SERVER_ADDR'].'/repository/%s/';
    $authz_path       = dirname(__FILE__).'/../etc/authz';
    $resources_path   = dirname(__FILE__).'/rsc'; // c'est ici que seront stocké les css et js de l'application Web
    $resources_url    = './rsc';
    $debug            = false;
     
    // indiquez directement le nom d'utilisateur authentifié
    // si vous désirez utiliser un système d'authentification externe
    // exemple : un SSO, Shibboleth ...
    //$auth_username = 'utilisateur-authentifie';
     
    $connection_driver = 'LDAP';
    $connection_options = array(
                                // parametre specifiques ldap
                                'host'       => 'localhost',
                                'port'       => 40191,
                                'basedn'     => 'dc=svnwebadmin',
                                'binddn'     => 'cn=manager,dc=svnwebadmin',
                                'bindpw'     => 'secret',
                                'usersdn'    => 'ou=people,dc=svnwebadmin',
                                'registerdn' => 'ou=people,dc=svnwebadmin',
                                'userdefaultvalue'  => array('objectclass' => array('top',
                                                                                    'person',
                                                                                    'inetOrgPerson')),
     
                                // parametres generiques
                                'usernamecol'  => 'mail',
                                'mailcol'      => 'mail',
                                'passwordcol'  => 'userPassword',
                                'passwordtype' => 'md5',
                                );
     
    include 'svnwebadmin.index.php';
  5. si vous souhaitez utiliser votre système d'authentification, dé-commenter éventuellement la ligne
    //$auth_username = 'utilisateur-authentifie';

    et remplacez la par une authentification LDAP ou par une authentification CAS ou pas un autre système de votre choix.
    Remarque : les variables $connection_driver et $connection_options ne sont utiles que si vous souhaitez utiliser le système de gestion des identités livré avec SvnWebAdmin. Pour en savoir plus sur les paramètres possibles rapportez à la documentation du module Pxxo_Widget_IdentityManager (la section le paramètre connection_options vous sera particulièrement utile).

  6. il reste à configurer votre serveur Apache pour permettre un accès contrôlé à vos dépôts SVN par HTTP. Cette étape est obligatoire, elle permet de rendre vos dépôts accessibles par des clients subversion tels que "la ligne de commande svn", "tortoise svn" ou "eclipse" (comme présenté dans le document d'architecture).