ibexa

Path

ez publish / technical manual / 4.x / features / webdav / setting it up


Caution: This documentation is for eZ Publish legacy, from version 3.x to 5.x.

Setting it up

This part of the 4.x documentation is for eZ Publish 4.0, only reference section is common for all eZ Publish 4.x versions as well as eZ Publish 5.x "LegacyStack", please select the version you are using for the most up to date documentation!

This section describes how eZ Publish can be configured in order to function as a WebDAV server. Please note that the DNS and the web server also needs to be configured.

Step 1: Enable the WebDAV server

The master WebDAV switch must be turned on. Create a global configuration override for "webdav.ini" and make sure that it contains the following lines:

[GeneralSettings]
EnableWebDAV=true

Step 2: Add the desired siteaccesses

In order to allow WebDAV access for a specific siteaccess, the name of the siteaccess must be specified in the "SiteList[]" array under "[SiteSettings]" in a configuration override for "site.ini". Make sure that the global configuration override for "site.ini" contains the necessary lines. The following example shows how WebDAV can be opened up for a siteaccess called "plain_user" and another one called "example".

[SiteSettings]
SiteList[]
SiteList[]=plain_user
SiteList[]=example

Step 3: Clear all caches

The eZ Publish part of the configuration is done. Clear all caches in order to make sure that the system uses the updated version of the configuration.

Step 4: Setup a DNS entry

Set up a DNS entry (for example a subdomain) that will be used to access the WebDAV server. The entry must point to the IP address of the web server. For example, if you're using "www.example.com" to access the web pages, you could set up "webdav.example.com" for WebDAV.

Step 5: Configure the web server

There is a file called "webdav.php" in the root of the eZ Publish directory. This file provides the actual WebDAV interface. The web server must automatically execute this file whenever a WebDAV client sends a command to the server. The following lines show an example of how this can be done in the configuration file of the Apache web server.

<Virtualhost 128.39.140.28>
  <Directory /path/to/ezpublish>
    Options FollowSymLinks Indexes ExecCGI
    AllowOverride None
  </Directory>
  DocumentRoot /path/to/ezpublish
  RewriteEngine On
  RewriteRule . /webdav.php
 ServerAdmin admin@example.com
 ServerName webdav.example.com
</VirtualHost>

Note: make sure that you have a "NamedVirtualHost" line before the declaratoin of the virtual hosts.

Step 6: Test

Launch a WebDAV compatible client / application and attempt to connect to the server.

Internet Explorer

Recent versions of Microsoft's Internet Explorer (6.0.2800.1106 or later) contain a built-in WebDAV client. The target address must be opened as a web folder.

  1. Start Internet Explorer.
  2. Access the "File" menu and select "Open", a dialog should appear.
  3. Type in the address of the WebDAV server along with a hash ("#") character at the end, like this: http://webdav.example.com/#

    WebDAV - IE open dialog

    WebDAV - IE open dialog

  4. Make sure that the "Open as web folder" check-box is checked.
  5. Click OK. You should be able to see the available siteaccesses as directories.

KDE/Konqueror

Make sure you have a recent version of Konqueror (3.1.3 or later). Open up a Konqueror window and attempt to browse the WebDAV server by accessing it using a URL that resembles the following example: "webdav://webdav.example.com/".

WebDAV - Content node tree

WebDAV - Content node tree

Balazs Halasy (10/11/2005 12:23 pm)

Ricardo Correia (17/04/2013 3:42 pm)

Balazs Halasy, Geir Arne Waaler, Ricardo Correia


Comments

  • Comments

    There is an image missing/not displayed on that page: "IE Open Dialog"

    Also, this documentation shows how to set up WebDAV using virtual host setup. This requires access to DNS and Apache names/setup for the server (at least, you'll need to be able to create a subdomain and create/modify Rewrite Rules in Apache).

    I know, that it is possible to run WebDAV without a dedicated Host name using just another Rewrite Rule.

    But: Is WebDAV also availbe for those, who cannot access the rewrite Rules?
  • webdav and windows XP

    The documented method to use internet explorer is in fact wrong for windows XP (at least with SP2 and IE7).

    There are two dav connectors in xp, and the default one (called mini-redirector) is so buggy it is basically useless. Also by default it does not support basic http auth, which is the method used by eZ Publish. You have to edit a reg key to allow it, see KB #841215.

    The recommended way to create a dav connection making sure the other connector (aka 'web folders') is used, is to add the port number at the end of the server address, starting from 'my neighborhood' | add network resource.

    Please note that it is also a good idea to update the web folders software package first. The latest version is found on MS KB #907306.

    Useful resources:
    http://www.greenbytes.de/tech/webdav/webdav-redirector-list.html
    http://www.greenbytes.de/tech/webdav/webfolder-client-list.html
    http://svnbook.red-bean.com/en/1.4/svn.webdav.clients.html
    http://support.microsoft.com/kb/907306
    http://support.microsoft.com/kb/841215
  • how to force IE to ask for password?

    i set up webdav on server.
    on IE i get list of sitaccesses, but if i click on any - i get error.
  • use dav:// to access from Nautilus in Gnome

    use dav:// to access from Nautilus in Gnome
  • configuration files

    Take care that [DatabaseSettings] and [FileSettings]/VarDir settings need to be set in the override site.ini file for webdav to work, as those settings are used by the server before checking for the siteaccess to use
  • Using global overrides for environment specific settings

    It seems like the global settings would be useful for environment-specific settings. For example, if you have three server environments (dev, qa, and production), you would put things like database server in the global file that you would not check into source control and manage directly on each environment. Does this seem like a good approach?