GeckoGeek.fr

Paradigme d'un lézard

Mercredi 24 Mai 2017

Installer Subversion sur Ubuntu 9.04 (accès HTTPS)

Par Vinz le 08/09/2009 dans Linux | 4 commentaires

Subversion - Logo

Installer un serveur subversion sur une release 2 OVH est relativement compliqué. En effet leur version d’Apache modifiée peut vite devenir instable si l’on tente cette procédure, sans compter que ceci est quasiment impossible pour quelqu’un de lambda sans connaissance très approfondie sur Linux. En fait, OVH déconseille cette manipulation ^^. Même installer subversion sur un Ubuntu “nu” n’est pas forcément facile vu que les tutoraux disponibles sur la toile sont parfois un peu confus car chacun présente une manière différente d’y arriver. Je vais donc essayer par ce billet de vous donner une méthode simple et efficace pour installer subversion sur un Ubuntu 9.04 (mais cela devrait marcher aussi sur le 8.04), avec un nom de domaine. Comme les manipulations suivantes ont marchés pour moi, j’espère qu’elles pourront éventuellement vous aider. Si vous êtes sur une release spéciale d’OVH, évitez cette procédure (comme expliqué plus haut). Ce tutorial est fait pour un Ubuntu “nu”, ou presque :-]

On part du principe que vous avez un serveur Ubuntu (9.04, voire 8.04) fraichement réinstallé et complètement vide. Si ce n’est pas le cas cela ne devrait pas trop gêner, mais pas besoin d’essayer de réinstaller apache & co :-] De même vous devez avoir les accès root au serveur et connaître les bases de Linux.

Installer Apache & Subversion

Dans un premier temps nous allons installer les principaux softs dont nous aurons besoin : Apache et Subversion. Connectez vous à votre serveur (ssh root@IP) et entrez les deux commandes suivantes :
Installer Apache :

apt-get install apache2

Installer Subversion et l’utilitaire Subversion pour Apache :

apt-get install subversion

Et enfin quelques utilitaires Apache et Subversion nécessaires pour relier les deux et la connexion SSL :-]

apt-get install libapache2-svn

En principe vous ne devriez pas rencontrer de problème lors de cette phase. Sinon c’est que cela commence vraiment mal pour vous ^_^

Ajouter l’écoute du port 443

Pour qu’Apache puisse écouter sur le port 443 (et permettre la connexion SSL), il faut lui préciser. Ouvrez le fichier “/etc/apache2/ports.conf” et ajoutez “Listen 443″ si la ligne n’y est pas encore. Cela devrait vous donner quelque chose comme ça :

NameVirtualHost *:80
Listen 80
Listen 443

Générer un certificat

Dans des anciennes versions d’Ubuntu il suffisait d’utiliser la commande “apache2-ssl-certificate” afin de créer un certificat. De nos jours cette application a été enlevée pour des raisons de sécurité. J’ai trouvé quelque chose qui semble remplacer la création du certificat sur des versions récentes via “ssl-cert”. On va donc déjà installer le paquet via un petit apt-get puis créer le dossier ssl dans /etc/apache2/ où l’on y stockera notre certificat.

apt-get install ssl-cert
mkdir /etc/apache2/ssl
/usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

Toutefois si vous souhaitez vraiment faire quelque chose de plus propre je vous conseille de vous référer à la documentation officielle.

Création du répertoire physique de Subversion

On passe à la création du répertoire où seront stockés les projets de Subversion. Cela peut être n’importe où sur votre machine (enfin quasiment :-]). Dans ce tutorial on prendra comme dossier “/var/developement/projects/svn/”. A vous de voir si vous voulez le changer ou non.
Création du répertoire :

mkdir -p /var/developement/projects/svn/

Allez dans le dossier et créez un projet. Ici nous choisirons le titre “myGames” ( svnadmin create nomProjet )

cd /var/developement/projects/svn/
svnadmin create myGames

Et enfin on donne des droits “http” sur ce dossier avec un petit chown. Notez bien que quand vous ajoutez un nouveau projet avec svnadmin, vous devez refaire le chown ci-dessous. Sinon vous aurez des problèmes de droits lors de vous commit !

chown -R www-data:www-data /var/developement/projects/svn/

Rajouter une liste d’utilisateur

On va rendre ce dépôt subversion privé en rajoutant une liste d’utilisateur. Si vous souhaitez le laisser complètement public, passez ce passage et laissez en commentaire les deux lignes dont nous parlerons plus tard sur la configuration d’Apache.
La liste d’utilisateurs se fait très rapidement. Nous allons créer le fichier “/etc/subversion/passwdProjet1″. Si le dossier subversion dans /etc/ n’existe pas créez le (mkdir /etc/subversion).
Pour rajouter le premier utilisateur tapez :

sudo htpasswd -c /etc/subversion/passwdProjet1 userNameX

Pour ajouter d’autres utilisateurs vous avez juste à enlever le -c :

sudo htpasswd /etc/subversion/passwdProjet1 userNameY

Configurer votre domaine chez votre registrar

Dans notre exemple nous souhaitons utiliser le sous-domaine svn du domaine monDomaine.com pour servir de dépôt. Pour cela il faut tout de même l’indiquer à ce qui gère votre domaine (donc soit votre registrar soit votre serveur si vous hébergez vos DNS). Dans le second cas vous devriez savoir ce que vous faites donc pas tellement besoin de vous expliquer ^^ Dans le premier cas, vous devez faire rediriger sur l’IP de votre serveur le sous domaine svn.

Si vous êtes chez OVH, suivez le guide :

  • Connectez-vous à votre manager (V3)
  • Sélectionnez votre domaine
  • Cliquez sur “Domaine & DNS”
  • Cliquez sur “Zone DNS”
  • Ajoutez un champ de type “Type DynHOST” (indiquez svn puis l’ip de votre serveur)

Si vous êtes chez un autre registrar, cela devrait en principe être la même chose :-] Trouvez comment faire rediriger un sous domaine vers une IP !

Configurer votre domaine sur Apache

Maintenant que vous avez configuré votre domaine pour le faire rediriger sur votre serveur, vous devez configurer votre serveur. Si votre domaine n’est pas “enregistré” déjà sur votre serveur, créez un nouveau fichier dans “/etc/apache2/sites-available/”. Sinon ouvrez le fichier où votre domaine est configuré pour y apporter les modifications. Le nom du fichier importe peu, prenons par exemple monDomaine-svn.conf :

vim /etc/apache2/sites-available/monDomaine-svn.conf

Rappelons que nous allons ici configurer votre domaine pour une connexion SSL (donc en principe plus “sécurisée” qu’un accès http basique sur le port 80). C’est pourquoi nous indiquons le port 443 et que l’on charge le module SSL. PS j’ai mis un cadre spécial autour du code qui suit car sinon certains caractères passaient mal dù au plugins de colorisation syntaxique (et automatique).

NameVirtualHost *:443
<VirtualHost *:443>

	# Remplacer le domaine par le votre
	ServerName svn.monDomaine.com

	LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
	SSLEngine On
	SSLCertificateFile /etc/apache2/ssl/apache.pem

        <Location /projects>
          DAV svn
          # Dossier où se trouve vos projets SVN
          SVNParentPath /var/developement/projects/svn/
          AuthType Basic
          AuthName "Mes Projets"
          AuthUserFile /etc/subversion/passwdProjet1
          # Pour un SVN complètement privé laissez les deux lignes commentées, sinon supprimez les commentaires !
          # <LimitExcept GET PROPFIND OPTIONS REPORT>
            Require valid-user
          # </LimitExcept>
        </Location>

</VirtualHost>

Une fois ceci effectué il faut transférer le fichier actuellement dans /sites-available/ dans /sites-enabled/. Nous allons utiliser une petite commande bien utile ” a2ensite ”

a2ensite monDomaine-svn.conf

La commande vérifie si le fichier existe bien puis le copie dans le dossier voulu. Vous auriez aussi pu faire un simple “cp” pour effectuer cette tâche ^^.

Redémarrer Apache et patienter !

Et enfin il ne vous reste plus qu’à redémarrer Apache afin de prendre en compte les modifications (et attendre une éventuelle propagation de DNS :-], PS 6h en moyenne pour un maximum de 48h)

/etc/init.d/apache2 restart

Comme il est toujours possible qu’une coquille se soit glissée dans ce tutorial, n’hésitez pas à me corriger dans ce cas :-] (ou faire état d’un problème chez vous).

Où mon svn sera-t-il disponible ?

Une fois les DNS propagés et si tout s’est bien passé, vous devriez avoir accès à votre dépot à l’url : https://svn.monDomaine.com/projects/myGames. Pour télécharger votre projet, utilisez :

svn co https://svn.monDomaine.com/projects/myGames

Quelques bases pour SVN

Rappelons rapidement quelques commandes pour SVN.
Ajouter des fichiers à votre version SVN lorsqu’ils sont dans le dossier du proet :

svn add ./dossier-ou-fichier

Supprimer des fichiers à votre version SVN (et du disque) :

svn delete ./dossier-ou-fichier

Envoyer les modifications sur le serveur :

svn commit -m "Message indiquant les modifications"

Bien d’autres commandes vous permettent d’agrémenter vos envies ^^. Soit vous vous renseignez avec un “svn -h” avec un Terminal, soit vous lisez notre billet spécial sur les commandes fondamentales de subversion !

Commentaires (4)
  1. Tweets that mention Installer Subversion sur Ubuntu 9.04 (accès HTTPS) | GeckoGeek.fr -- Topsy.com le 8 Sep 2009 à 01:59

    […] This post was mentioned on Twitter by Gecko Geek. Gecko Geek said: Installer Subversion sur Ubuntu 9.04 (accès HTTPS) (http://cli.gs/tshdsD) […]

  2. Tutorial Subversion : commandes fondamentales | GeckoGeek le 30 Sep 2009 à 10:00

    […] Subversion : commandes fondamentales Dernièrement nous vous avons expliqué comment installer Subversion sur un serveur. Toutefois nous n’avons que brièvement fait le tour de son utilisation. Voici donc un petit […]

  3. taha le 7 Feb 2011 à 13:41

    Bonjour,
    je viens d’installer svn mais toujours je peut pas accéder a mon svn a partir de mon ip,
    j’ai essayer de faire avec éclipse un projet svn qui point sur le :
    svn://IP-de-mon-pc/projects/myGames avec le login et le mots passe que j’ai deja configurer mais il me renvoie toujours erreur identification refuser par le serveur!!

  4. Vinz le 8 Feb 2011 à 14:08

    Hello. As-tu déjà tenté d’y accéder par http via un navigateur ou de faire un check-out via un terminal ? Si c’est une erreur d’identification c’est probablement un soucis de login/password. Tu as créé un fichier de password etc ?


Laisser un commentaire