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.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
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.
Links¶
WebDAV mit Apache 🇩🇪 - heise Netze, 09/2006