ibexa

Path

ez publish / technical manual / 4.5 / features / webdav / setting it up


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

  • Setting it up

    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 (14/09/2010 11:40 am)

    Geir Arne Waaler (29/09/2010 7:17 am)

    Balazs Halasy, Geir Arne Waaler


    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?