SVN-Repository unter Subdomain

DeeDee0815

DeeDee0815

Doppel-As
Hallo,

ich möchte mir ein Subversion-Repository auf meinem Server einrichten: Dazu habe ich folgendes, eigentlich für Ubuntu gedachtes, Tutorial gefunden, welches sich aber sicherlich auch auf meinen Debian Etch Server anwenden lässt: http://wiki.ubuntuusers.de/Subversion

Das ist alles soweit auch kein Problem: Nur möchte ich mein Repository nicht unter meinedomain.de/svn, sondern unter svn.meinedomain.de erreichen. Meine Frage wäre, ob bei der aktivierung des Modules dav_svn einfach nur ein kleiner Alias irgendwo reingeschrieben wird, der mir eigentlich egal sein kann, und den ich letztendlich einfach mit einem VHost nachbilden kann, oder ob die Sache mit SVN als Subdomain komplizierter ist. Sofern man einfach einen VHost anlegen kann, wäre es aber wichtig, dass der Alias "svn" auf keinen Fall weiter irgendwo rumgeistert. Sofern er sich in meiner VHosts-Config einnistet werde ich ihn sicher schnell los, andernfalls müsste ich noch wissen, wo ich diesen Alias löschen muss.

MfG
DeeDee0815 8)
 
Einfach Lösung:

- dav und dav_svn als Modul aktivieren
- in der sites-enabled/000-default ein VHost für dein SVN festlegen (idealerweise natürlich per SSL die Daten übertragen)
Code:
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
SSLPassPhraseDialog  builtin
SSLSessionCache         dbm:/var/log/apache2/ssl_scache
SSLSessionCacheTimeout  300
SSLMutex  file:/var/log/apache2/ssl_mutex
<VirtualHost *:443>
    ServerAdmin admin@deinedomain.de
    ServerName svn.deinedomain.de
    DocumentRoot /var/www/websvn/
    <Location />
        Options FollowSymLinks
        order allow,deny
        allow from all
        AuthType Basic
        AuthName "Subversion Repository"
        Require valid-user
        AuthUserFile /etc/apache2/dav_svn.passwd
        <IfModule mod_php4.c>
            php_flag magic_quotes_gpc Off
            php_flag track_vars On
        </IfModule>
    </Location>
    SSLEngine on
    SSLCertificateFile        /etc/apache2/ssl/server.crt
    SSLCertificateKeyFile     /etc/apache2/ssl/server.key
</VirtualHost>
Pfade ggf. anpassen
- Locations der Repositories in die mods-enabled/dav_svn.conf eintragen. Beispiel:
Code:
<Location /svn_repos1>
  DAV svn
  SVNPath /var/svn-repos/repos1
  ErrorDocument 404 default
  AuthType Basic
  AuthName "Subversion Repository repos1"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user
  SSLRequireSSL
</Location>
Damit wäre dann repos1 z.B. unter https://svn.deinedomain.de/svn_repos1/ erreichbar und wenn du in /var/www/websvn/ noch WebSVN installierst, bekommst du unter https://svn.deinedomain.de/ das WebSVN mit der Übersicht über alle Repositories. Wenn du komplett unterbinden willst, dass man über andere Subdomains auf die Repositories kommt, wirst du vermutlich nicht um eine entsprechende Rewrite-Regel herum kommen, mit der du alle anfragen auf Repository-Ordner automatisch auf svn.deinedomain.de/repository-ordner umleitest.
 
Hallo bitmuncher,

vielen lieben Dank für deine hilfreiche und ausführliche Antwort: Das hat mir schon sehr weitergeholfen. Eine Frage bleibt aber für mich offen: Verstehe ich Dich richtig, dass es keine vernünftige Möglichkeit gibt, den Zugriff auf das SVN über eine andere Subdomain als svn.meinedomain.de zu verhindern? Das wäre sehr schade. Denn auf diese Weise kommt SVN für mich nicht in Frage. Auf den Subdomains des Servers werden viele Webseiten gehostet und es ist nicht auszuschließen, dass bei diesen auchmal etwas in der nachfolgenden Form NICHT zu dem SVN führen soll: http://sub.meinedomain.de/svn_repos1/.

MfG
DeeDee0815

P.S.: Wie machen dass den große Seiten wie zum Beispiel SourceForge.net?
 
Sourceforge hat die SVN-Server auf extra Maschinen und somit anderen IPs laufen. sf.net selbst läuft auf 66.35.250.203, 1.svn.sourceforge.net geht auf 66.35.250.144, 2.svn.sourceforge.net auf 66.35.250.145 usw.
 
Zuletzt bearbeitet:
Hi bitmuncher,

ich hätte mir auch denken können, dass die für das SVN Extra-Server haben. Aus meiner Sicht bliebe wohl nur die vollkommen unpraktikable Möglichkeit einen zweiten Webserver mit dem SVN, sowie einen DNS-Server, der zwischen den Webservern splittet, aufzusetzen - das mache ich garantiert nicht.

In dem Tutorial steht, dass man SVN auch ohne WebDAV aufsetzen kann: Würde das das Problem des erzwungenen Repositorys in jeder Subdomain lösen? Ich meine es kann doch wohl nicht sein, dass die SVN-Entwickler so bescheuert gedacht haben: Wer will schon in jeder Subdomain sein SVN rumfliegen haben?

MfG
DeeDee0815
 
Du brauchst ja nicht zwingend einen zweiten Server, sondern lediglich eine zweite IP, auf die du das VHost für die Subdomain setzt (sowohl im Apache als auch im DNS). Andere Zugriffsmöglichkeiten ohne DAV sind z.B. via ssh+svn oder direkt über den Subversion-Server. Mehr dazu findest du im Subversion-Handbuch.
 
Hi bitmuncher,

mit dem zweiten Webserver meinte ich einen zweiten Webserver-Dienst, keinen zweiten Rechner: Die von mir genannte Lösung ist jedoch vollkommen unpraktikabel.

Da es ja offenbar nicht möglich ist, das SVN nicht subdomainunabhängig einzurichten (welcher trottel sich auch immer das ausgedacht hat), muss ich mir mal die Sache per SSH oder, wie Du sagtest, "direkt über den Subversion-Server", ansehen.

MfG
DeeDee0815
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Hallo nochmal,

ich habe noch folgendes gefunden:
http://kb.gnuher.de/web/Subversion-Server.txt

Dieser Mensch hat sich folgenden VHost konfiguriert:
Code:
  <IfDefine SSL>
  <VirtualHost *:443>
        ServerName svn.dom.ain
        Include sites-available/includes/ssl.conf
        <Location /repos>
                DAV svn
                SVNParentPath /pfad/in/dem/die/repos/liegen
                AuthType Basic
                AuthName "SVN-Repos dom.ain"
                AuthUserFile /da/wo/die/geheimnisse/liegen/svn.htpasswd
                Require valid-user
        </Location>
  </VirtualHost>
  </IfDefine>

Heißt das etwa nicht, dass das SVN nur über genau diese Subdomain erreichbar ist? (So wie bei deiner VHost-Konfiguration auch?)

MfG
DeeDee0815
 
Zuletzt bearbeitet:
Hi,

ich habe es nun einfach mal gewagt einzurichten: Und siehe da, meine Vermutung hat sich bestätigt. Das SVN ist auf die beschriebene Weise nur per Subdomain erreichbar. Der Location-Tag innerhalb des ensprechenden VHost und eine leere /etc/apache2/mods-enabled/dav_svn.conf ist die Lösung.

MfG
DeeDee0815
 
Danke für den Hinweis. Ich werde das auf meinem SVN-Server dann demnächst auch mal umstellen. Dann lässt er sich sicherlich noch für andere Dinge verwenden ohne weitere IPs draufzuschalten.
 
Hi!
Mich plagt gerade eigentlich das gleiche Problem. Möchte, dass das SVn nur per svn.domain.com erreichbar ist, aber nicht zB per www.domain.com. Habe dazu die folgende Konfiguration vorgenommen:

Code:
<VirtualHost *:443>
        ServerName svn.domain.com
        SSLEngine on
        SSLCertificateFile [..]
        SSLCertificateKeyFile [..]
        SSLCACertificateFile [..]
<Location /ordner1>
        DAV svn
        SVNPath /var/svn-repos/ordner1
        AuthType Basic
        AuthName "Subversion user1 und user2"
        AuthUserFile /etc/apache2/dav_svn.passwd
        Require user user1 user2
</Location>
<Location /ordner2>
        DAV svn
        SVNPath /var/svn-repos/ordner2
        AuthType Basic
        AuthName "Subversion user3 und user4"
        AuthUserFile /etc/apache2/dav_svn.passwd
        Require user user3 user4
</Location>
</VirtualHost>

Ausgelassen habe ich jetzt nur die Log-Einstellungen. Der vHost hier sollte auch der einzige vHost sein. Auch habe ich alle Einträge in der dav_svn.conf gelöscht. Trotzdem lassen sich die Repositories mit allen erdenklichen Subdomains anreden. Wie kann ich das ändern?
 

Ähnliche Themen

Problem mit Apache2 + MySQL Server

Opensuse 10.2 Alpha installation

was soll das?

Zurück
Oben