Apache DAV-SVN (Linux): Unterschied zwischen den Versionen

Aus Tutorials
Zur Navigation springen Zur Suche springen
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


<pre>
<pre>
sudo a2enmod dav_svn  
sudo a2enmod dav
sudo a2enmod dav_svn
sudo a2enmod dav_fs
</pre>
</pre>


Zeile 18: Zeile 20:
<Location /svn>
<Location /svn>
   DAV svn
   DAV svn
   SVNPath /home/svn
   SVNParentPath /home/svn
  SVNListParentPath on
   AuthType Basic
   AuthType Basic
   AuthName "Subversion repository"
   AuthName "Subversion repository"
   AuthUserFile /etc/apache2/dav_svn.passwd
   AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user
</Location>
</pre>
Soll Lesezugriff ohne Passworteingabe erlaubt sein, dann die ''LimitExcept''-Direktive hinzufügen:
<pre>
<Location /svn>
  ...
   <LimitExcept GET PROPFIND OPTIONS REPORT>
   <LimitExcept GET PROPFIND OPTIONS REPORT>
     Require valid-user
     Require valid-user
   </LimitExcept>
   </LimitExcept>
  ...
</Location>
</Location>
</pre>
</pre>
Zeile 33: Zeile 46:
sudo htpasswd /etc/apache2/dav_svn.passwd <user name>
sudo htpasswd /etc/apache2/dav_svn.passwd <user name>
</pre>
</pre>
Zum Abschluss muss der Server neu gestartet werden:


<pre>
<pre>
sudo /etc/init.d/apache2 restart  
sudo /etc/init.d/apache2 restart  
</pre>
== Aufruf ==
=== per IP ===
<pre>
http://<server ip>/svn/
</pre>
=== per DNS ===
Verzeichnis für ''DavLockDB'' anlegen:
<pre>
sudo mkdir /var/www/svn
sudo chown www-data:www-data /var/www/svn
</pre>
Port ''80'' auf ''443'' weiterleiten:
<pre>
sudo vi /etc/apache2/sites-available/svn.conf
</pre>
<pre>
<VirtualHost *:80>
        ServerName svn.<domain>
        ServerAlias svn.<domain>
        Redirect / https://svn.<domain>
</VirtualHost>
</pre>
<pre>
sudo vi /etc/apache2/sites-available/svn-ssl.conf
</pre>
<pre>
<virtualhost *:443>
    ServerName svn.<domain>
    SSLEngine On
    SSLCertificateFile /etc/ssl/certs/svn.crt
    SSLCertificateKeyFile /etc/ssl/private/apache.key
    DavLockDB /var/www/svn/DavLock
    <Location />
        Dav svn
        SVNParentPath /home/svn
        SVNListParentPath on
        AuthType Basic
        AuthName "Subversion repository"
        AuthUserFile "/etc/apache2/dav_svn.passwd"
        Require valid-user
    </Location>
    ErrorLog ${APACHE_LOG_DIR}/svn.<domain>-error.log
    CustomLog ${APACHE_LOG_DIR}/svn.<domain>-access.log combined
</virtualhost>
</pre>
==== Links ====
[https://httpd.apache.org/docs/2.4/mod/mod_dav.html https://httpd.apache.org/docs/2.4/mod/mod_dav.html]
== Probleme ==
=== The URI does not contain the name of a repository. ===
Wenn kein spezielles Repository ausgewählt wird, können mit der Option ''SVNListParentPath'' alle verfügbaren Reposities aufgelistet werden:
<pre>
<Location /svn>
  ...
  SVNListParentPath on
  ...
</Location>
</pre>
</pre>


Zeile 43: Zeile 136:




Zurück zu [[Subversion (Linux)#Webinterface|Subversion]]
Zurück zu [[Apache DAV-SVN (unterschiedliche Versionen)#Ubuntu Versionen|Apache DAV-SVN]]

Aktuelle Version vom 21. August 2020, 00:21 Uhr

Installation

sudo a2enmod dav
sudo a2enmod dav_svn
sudo a2enmod dav_fs

Konfiguration

Die Datei dav_svn.conf bearbeiten

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

und folgende Zeilen hinzufügen:

<Location /svn>
  DAV svn
  SVNParentPath /home/svn
  SVNListParentPath on
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user
</Location>

Soll Lesezugriff ohne Passworteingabe erlaubt sein, dann die LimitExcept-Direktive hinzufügen:

<Location /svn>
  ...
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>
  ...
</Location>

Passwort-Datenbank anlegen (falls die Datenbank noch nicht existiert, ist der Parameter -c erforderlich):

sudo htpasswd /etc/apache2/dav_svn.passwd <user name>

Zum Abschluss muss der Server neu gestartet werden:

sudo /etc/init.d/apache2 restart 

Aufruf

per IP

http://<server ip>/svn/

per DNS

Verzeichnis für DavLockDB anlegen:

sudo mkdir /var/www/svn
sudo chown www-data:www-data /var/www/svn

Port 80 auf 443 weiterleiten:

sudo vi /etc/apache2/sites-available/svn.conf 
<VirtualHost *:80>
        ServerName svn.<domain>
        ServerAlias svn.<domain>
        Redirect / https://svn.<domain>
</VirtualHost>
sudo vi /etc/apache2/sites-available/svn-ssl.conf 
<virtualhost *:443>
    ServerName svn.<domain>

    SSLEngine On
    SSLCertificateFile /etc/ssl/certs/svn.crt
    SSLCertificateKeyFile /etc/ssl/private/apache.key

    DavLockDB /var/www/svn/DavLock

    <Location />
        Dav svn
        SVNParentPath /home/svn
        SVNListParentPath on
        AuthType Basic
        AuthName "Subversion repository"
        AuthUserFile "/etc/apache2/dav_svn.passwd"
        Require valid-user
    </Location>

    ErrorLog ${APACHE_LOG_DIR}/svn.<domain>-error.log
    CustomLog ${APACHE_LOG_DIR}/svn.<domain>-access.log combined
</virtualhost>

Links

https://httpd.apache.org/docs/2.4/mod/mod_dav.html

Probleme

The URI does not contain the name of a repository.

Wenn kein spezielles Repository ausgewählt wird, können mit der Option SVNListParentPath alle verfügbaren Reposities aufgelistet werden:

<Location /svn>
  ...
  SVNListParentPath on
  ...
</Location>

Links

https://wiki.ubuntuusers.de/Archiv/Subversion/


Zurück zu Apache DAV-SVN