[[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