[[Vorlage(Archiviert)]]
{{{#!vorlage Wissen
[:Terminal: Ein Terminal öffnen]
[:Editor: Einen Editor öffnen]
[:Apache: Apache Grundlagen]
[:Apache/Virtual_Hosts: Apache Virtual Host konfigurieren]
}}}
[[Inhaltsverzeichnis()]]
Diese Anleitung beschreibt die Aktivierung und Konfiguration des WebDAV-Moduls für den Webserver [:Apache:Apache2] via [http://httpd.apache.org/docs/2.2/mod/mod_dav.html mod_dav] {en}. [wikipedia: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:
{{{#!vorlage Befehl
sudo a2enmod dav
sudo a2enmod dav_fs
}}}
Der Webserver sollte anschließend mit
{{{#!vorlage Befehl
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 [:WebDAV: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:
{{{#!vorlage Befehl
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:
{{{#!code apache
Alias /webdav "/var/webdav/"
DAV on
Options +Indexes
}}}
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:
{{{#!code apache
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
}}}
Nach einem weiteren Neustart des Webservers sollte das Verzeichnis als WebDAV Verzeichnis verwendbar sein.
{{{#!vorlage Warnung
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:
{{{#!code apache
Alias /webdav "/var/webdav/"
DAV on
Options +Indexes
AuthType Basic
AuthName DAV
AuthUserFile /etc/apache2/passwords
Require valid-user
}}}
Die Datei mit den Benutzern und Passwörtern muss mit folgendem Befehl erstellt werden, falls noch keine existiert:
{{{#!vorlage Befehl
sudo htpasswd -Bc /etc/apache2/passwords
}}}
Nach den Änderungen muss der Apache noch neu gestartet werden:
{{{#!vorlage Befehl
sudo service apache2 restart
}}}
Zur Sicherheit sollte man noch die Rechte der mit `htpasswd` angelegten Datei ändern:
{{{#!vorlage Befehl
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 [:Apache/SSL: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: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:
{{{#!code apache
...
php_flag engine Off
...
}}}
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 =
* [heise:-221613:WebDAV mit Apache] {de} - heise Netze, 09/2006
* [http://httpd.apache.org/docs/2.4/howto/auth.html Apache 2.4 Dokumentation: Authentisierung] {en}
* [http://httpd.apache.org/docs/2.4/programs/htpasswd.html Apache 2.4 Dokumentation: spezifische Benutzer anlegen] {en}
# tag: Internet, Netzwerk, Server, Apache