Red Hat / CentOS Linux: Apache Enable WebDAV

Q. Web-based Distributed Authoring and Versioning ( WebDAV) – is a set of extensions to the Hypertext Transfer Protocol (HTTP) that allows users to collaboratively edit and manage files on remote World Wide Web servers. How do I enable WebDAV under CentOS / RHEL 5 Linux server?

A. WebDAV can be easily created under httpd. All you have to do is add following directive alias.

httpd Dav on

Open httpd.conf file:
# vi httpd.conf
Append following directive:

Alias /webdav /home/httpd/webdav
Dav on

Save and close the file. Update: here is my sample /etc/httpd/conf.d/webdav.conf file. Instead of putting above two lines in httpd.conf, create /etc/httpd/conf.d/webdav.conf as follows:

 <IfModule mod_dav.c>
    LimitXMLRequestBody 131072
 
    Alias /webdav "/home/httpd/webdav"
    <Directory /home/httpd/webdav>
        Dav On
        Options +Indexes
        IndexOptions FancyIndexing
        AddDefaultCharset UTF-8
        AuthType Basic
        AuthName "WebDAV Server"
        AuthUserFile /etc/httpd/webdav.users.pwd
        Require valid-user
        Order allow,deny
        Allow from all
    </Directory>
 </IfModule>

<IfModule mod_dav.c>
LimitXMLRequestBody 131072
Alias /webdav "/home/httpd/webdav"
<Directory /home/httpd/webdav>
Dav On
Options +Indexes
IndexOptions FancyIndexing
AddDefaultCharset UTF-8
AuthType Basic
AuthName "WebDAV Server"
AuthUserFile /etc/httpd/webdav.users.pwd
Require valid-user
Order allow,deny
Allow from all
</Directory>
</IfModule>

The configuration file will automatically be included. Run following to create user and password for user called tom:
# htpasswd -c /etc/httpd/webdav.users.pwd tom
You need to enter a password. The -c option creates the /etc/httpd/webdav.users.pwd. It can be left out when others users are added to the database. Now, create /home/httpd/webdav and set ownership:
# mkdir -p /home/httpd/webdav
# chown apache:apache /home/httpd/webdav

Finally, restart apache, enter:
# /etc/init.d/httpd restart

How do I access WebDAV in Windows / Linux / UNIX and Mac OS X?

Windows XP / 2003 server or higher have WebDAV client. Open My network places and click Add network place. Enter the WebDAV URL (e.g. http://yourdomain.com/webdav).

WebDAV in OS X

Click Finder > From the Finder menu, select Go > Connect to Server.

Type in the URL (e.g. http://yourdomain.com/webdav), and press the + button to save it as a favourite. Finally, provide username and password.

WebDAV in Linux / UNIX

Use GUI file manager.

KDE supports WebDAV by just using URLs that start with webdav:// or webdavs://. For e.g, open konqueror and type the url webdav://yourdomain.com/webdav

The Gnome file browser Nautilus also has WebDAV support in recent versions, using normal URLs with http://. Open Nautilus and type the url http://yourdomain.com/webdav.

Command-line WebDAV client for Unix / Linux

Use cadaver client, it supports file upload, download, on-screen display, namespace operations (move and copy), collection creation and deletion, and locking operations. Its operation is similar to the standard ftp client and the Samba Project’s smbclient. A user familiar with these tools should be quite comfortable with cadaver. cadaver supports automatically logging in to servers requiring authentication via a .netrc file (similar to ftp).

To onnect to webdav server, from a shell prompt enter:
$ cadaver http://your-server.com/webdav

References:

  • webdav
  • man page httpd.conf and cadaver

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.