Question

J'ai un ordinateur portable exécutant Ubuntu et j'aimerais faire office de serveur Subversion.Tant pour moi-même pour m'engager localement que pour les autres à distance.Quelles sont les étapes nécessaires pour que cela fonctionne ?Veuillez inclure les étapes à suivre pour :

  • Obtenez et configurez Apache et les modules nécessaires (je sais qu'il existe d'autres façons de créer un serveur SVN, mais je l'aimerais spécifique à Apache)
  • Configurer un moyen sécurisé d'accéder au serveur (SSH/HTTPS)
  • Configurer un ensemble d'utilisateurs autorisés (par exemple, ils doivent être autorisés à s'engager, mais sont libres de naviguer)
  • Validez la configuration avec un commit initial (une sorte de "Hello world")

Ces étapes peuvent impliquer n’importe quel mélange d’instructions de ligne de commande ou d’application GUI.Si vous le pouvez, veuillez noter où les instructions sont spécifiques à une distribution ou une version particulière, et où le choix d'un utilisateur concernant un outil particulier peut être utilisé à la place (par exemple, nano au lieu de vi).

Était-ce utile?

La solution

Étapes que j'ai prises pour faire de mon ordinateur portable un serveur Subversion.Le crédit doit aller à AlephZarro pour ses indications ici.J'ai maintenant un serveur SVN fonctionnel (qui n'a actuellement été testé que localement).

Configuration spécifique :Kubuntu 8.04 Héron rustique

Conditions requises pour suivre ce guide :

  • programme de gestion de paquets apt-get
  • éditeur de texte (j'utilise Kate)
  • droits d'accès sudo

1:Installez le serveur HTTP Apache et les modules requis :

sudo apt-get install libapache2-svn apache2

Les packages supplémentaires suivants seront installés :

apache2-mpm-worker apache2-utils apache2.2-common

2 :Activer SSL

sudo a2enmod ssl
sudo kate /etc/apache2/ports.conf

Ajoutez ou vérifiez que les éléments suivants se trouvent dans le fichier :

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

3 :Générez un certificat SSL :

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

4 :Créer un hôte virtuel

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svnserver
sudo kate /etc/apache2/sites-available/svnserver

Changement (dans ports.conf) :

"NameVirtualHost *" to "NameVirtualHost *:443"

et (dans svnserver)

<VirtualHost *> to <VirtualHost *:443>

Ajoutez, sous ServerAdmin (également dans le fichier svnserver) :

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM

5 :Activer le site :

sudo a2ensite svnserver
sudo /etc/init.d/apache2 restart

Pour surmonter les avertissements :

sudo kate /etc/apache2/apache2.conf

Ajouter:

"ServerName $your_server_name"

6 :Ajout de référentiel(s) :La configuration suivante suppose que nous souhaitons héberger plusieurs référentiels.Exécutez ceci pour créer le premier référentiel :

sudo mkdir /var/svn

REPOS=myFirstRepo
sudo svnadmin create /var/svn/$REPOS
sudo chown -R www-data:www-data /var/svn/$REPOS
sudo chmod -R g+ws /var/svn/$REPOS

6.a.Pour plus de référentiels :refaites l'étape 6 (en changeant la valeur de REPOS), en sautant l'étape mkdir /var/svn

7:Ajouter un utilisateur authentifié

sudo htpasswd -c -m /etc/apache2/dav_svn.passwd $user_name

8 :Activez et configurez WebDAV et SVN :

sudo kate /etc/apache2/mods-available/dav_svn.conf

Ajouter ou décommenter :

<Location /svn>
DAV svn

# for multiple repositories - see comments in file
SVNParentPath /var/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL
</Location>

9 :Redémarrez le serveur Apache :

sudo /etc/init.d/apache2 restart

dix:Validation:

J'ai lancé un navigateur :

http://localhost/svn/$REPOS
https://localhost/svn/$REPOS

Les deux nécessitaient un nom d’utilisateur et un mot de passe.Je pense en décommentant :

<LimitExcept GET PROPFIND OPTIONS REPORT>

</LimitExcept>

dans /etc/apache2/mods-available/dav_svn.conf, permettrait une navigation anonyme.

Le navigateur affiche « Révision 0 :/"

Commettre quelque chose :

svn import --username $user_name anyfile.txt https://localhost/svn/$REPOS/anyfile.txt -m “Testing”

Acceptez le certificat et entrez le mot de passe.Découvrez ce que vous venez de commettre :

svn co --username $user_name https://localhost/svn/$REPOS

En suivant ces étapes (en supposant que je n'ai commis aucune erreur de copier/coller), j'avais un référentiel SVN fonctionnel sur mon ordinateur portable.

Autres conseils

Ensuite, j'avais besoin d'exécuter (dans le cadre de l'exemple cité ci-dessus)

$ sudo chmod g+w /var/svn/$REPOS/db/rep-cache.db

$ sudo chown www-data:www-data /var/svn/$REPOS/db/rep-cache.db

Sinon, j'ai continué à recevoir une erreur 409 lors de la validation des modifications locales (bien que les engagements aient été efficaces au serveur, je devais faire un suivi avec des mises à jour locales)

Cet article semble donner un assez bon aperçu de l’ensemble du processus.Je recommanderais de suivre les instructions, puis de publier des questions plus spécifiques sur les problèmes que vous rencontrez et qui ne sont pas abordés dans les articles auxquels moi et d'autres personnes avons lié dans ces réponses.

Si vous obtenez 403 interdit lorsque vous accédez au serveur Web, cela peut être dû au fait que vous avez utilisé un nom d'hôte qui n'est pas celui que vous avez spécifié dans votre fichier de configuration (c'est-à-dire localhost ou 127.0.0.1).Essayez de frapper https://quel que soit votre nom d'hôte plutôt...

Veuillez écrire une seule commande sur le terminal.

Pour ouvrir le terminal, veuillez appuyer sur Ctrl + Alt + T, puis tapez cette commande :

$sudo apt-get install subversion

Pour Apache :

sudo apt-get -yq install apache2

Pour SSH :

sudo apt-get -yq install openssh-server

Pour Subversion :

sudo apt-get -yq install subversion subversion-tools

Si vous le souhaitez, vous pouvez les combiner en une seule commande comme :

sudo apt-get -yq install apache2 openssh-server subversion subversion-tools

Je ne peux pas t'aider pour le reste...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top