ubuntuusers.de

mod dav

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Diese Anleitung beschreibt die Aktivierung und Konfiguration des WebDAV-Moduls für den Webserver Apache2 via mod_dav 🇬🇧. WebDAV ist ein Standard, mit dem Verzeichnisse auf einem Webserver wie eine Netzwerkfestplatte benutzt werden können.

Die Nutzung - als Client - ist im Artikel WebDAV beschrieben.

Das WebDAV-Modul aktivieren

Die Installation des Apache liefert die nötigen Module und deren Konfigurationsdateien bereits mit. Allerdings sind diese noch nicht aktiviert. Es handelt sich um die Module "dav_fs" und "dav". Diese können folgendermaßen aktiviert werden:

sudo a2enmod dav
sudo a2enmod dav_fs 

Der Webserver sollte anschließend mit

sudo /etc/init.d/apache2 restart 

neu gestartet werden.

Ein Verzeichnis über WebDAV freigeben

Nachdem die nötigen Module aktiviert wurden und der Server neu gestartet wurde, kann man ein erstes Verzeichnis für den Zugriff über WebDAV freigeben.

Zunächst ist zu überlegen, wo die Freigabe im Dateisystem liegen soll. Als Beispiel soll das Verzeichnis /var/webdav dienen. Dieses Verzeichnis muss zunächst angelegt werden und (in der Regel) dem Benutzer www-data und der Gruppe www-data gehören:

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

Dann ist zu überlegen, wie die WebDAV-URL für dieses Verzeichnis lauten soll. In diesem Beispiel bietet sich http://localhost/webdav/ an.

Für dieses Beispiel wird /etc/apache2/sites-available/default im Bereich des entsprechenden VirtualHost um folgenden Teil erweitert:

1
2
3
4
5
Alias /webdav "/var/webdav/"
<Directory "/var/webdav/">
 DAV on
 Options +Indexes
</Directory>

Dies biegt die URL http://localhost/webdav auf das Verzeichnis /var/webdav um und definiert, dass für den Zugriff darauf das WebDAV-Modul verwendet werden soll (DAV on). Die Option +Indexes sorgt dafür, dass man im Browser eine Dateiliste angezeigt bekommt - ansonsten erhält man nur "Error 403 - Forbidden". Ggf. muss dieses Verzeichnis noch in der apache2 Konfiguration /etc/apache2/apache2.conf freigegeben werden:

1
2
3
4
5
<Directory /var/webdav/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Nach einem weiteren Neustart des Webservers sollte das Verzeichnis als WebDAV Verzeichnis verwendbar sein.

Achtung!

Mit dieser Konfiguration darf jeder Dateien auf dieser URL verändern! Um dies zu verhindern, muss eine Zugriffberechtigung via Basic-Auth eingerichtet werden.

Zugriff benutzerspezifisch regeln

Über Authentifizierungsmöglichkeiten kann der Zugriff benutzerspezifisch geregelt werden. Beispiel:

1
2
3
4
5
6
7
8
9
Alias /webdav "/var/webdav/"
<Directory "/var/webdav/">
  DAV on
  Options +Indexes
  AuthType Basic
  AuthName DAV
  AuthUserFile /etc/apache2/passwords
  Require valid-user
</Directory>

Die Datei mit den Benutzern und Passwörtern muss mit folgendem Befehl erstellt werden, falls noch keine existiert:

sudo htpasswd -Bc /etc/apache2/passwords <username> 

Nach den Änderungen muss der Apache noch neu gestartet werden:

sudo service apache2 restart 

Zur Sicherheit sollte man noch die Rechte der mit htpasswd angelegten Datei ändern:

sudo chown root:www-data /etc/apache2/passwords
sudo chmod 640 /etc/apache2/passwords 

Problembehebung

Keine Verbindung von Windows-Clients ohne SSL möglich

Ist SSL nicht aktiviert, so ist es nicht möglich, eine Verbindung von Windows-Clients aufzubauen, ohne dort in der Registry etwas zu verändern. Die einfachste und auch sinnvollste Möglichkeit diesen Fehler zu beheben ist es, eine SSL-Verbindung wie hier beschrieben zu verwenden.

Nautilus meldet beim Verbinden: HTTP-Fehler: Moved Permanently

Das Einfügen von "BrowserMatch "gvfs/*" redirect-carefully" in die Apache-Konfiguration schafft hier Abhilfe. Zusätzlich sollte noch die Direktive "AllowOverride None" hinzugefügt werden, um zu verhindern, das .htaccess-Dateien ausgewertet werden. (siehe Bug #310967)

Skripte übertragen

Läuft PHP oder eine andere Skriptsprache als Apache-Modul, werden Dateien zunächst nicht übertragen, sondern deren Ausgabe. Das Verhalten kann man ändern, indem man für das betreffende WebDAV-Verzeichnis die Skriptsprache deaktiviert:

1
2
3
4
5
<Directory /path>
  ...
  php_flag engine Off
  ...
</Directory>

In diesem Zusammenhang empfiehlt sich eine gesonderte (Sub-)Domain für den WebDAV-Zugang, die passwortgeschützt ist. Sonst werden auch unter der normalen URL die Skripte übertragen werden.

Diese Revision wurde am 10. Februar 2020 09:44 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Netzwerk, Server, Internet, Apache