OK, here goes. It has been a few weeks since I did this but I think I can recreate the necessary steps.
The first thing I must say is that I can take no responsibility if this screws up your system in any way. My DirectAdmin is installed on a CentOS 4.1 box so my instructions assume that, you may have to modify for your platform.
1. You will need to be running Apache 1.3.34, anything earlier is incompatible with WebDAV (from WebDAV documentation). If you have not already done this update check out this link for instructions (look for the first post by DirectAdmin Support in the thread for easy instructions.)
http://www.directadmin.com/forum/showthread.php?s=&threadid=10194&highlight=apache+1.3.34
2. Download the source code for the WebDAV module from...
http://www.webdav.org/mod_dav/mod_dav-1.0.3-1.3.6.tar.gz
and place this file somewhere on your DirectAdmin box. I put mine in /home/admin
3. ssh into your directadmin box and type "cd /home/admin" (assuming that's where you put it.)
4. Type "tar xvfz mod_dav-1.0.3-1.3.6.tar.gz"
5. Type "cd mod_dav-1.0.3-1.3.6"
6. Type "./configure --with-apxs=/usr/sbin/apxs"
7. Type "make"
8. Type "make install" (You will of course need to be root to do this)
9. Edit the Apache config file "httpd.conf" which is located in /etc/httpd/conf/
You need to make sure that the following lines are in there...
LoadModule dav_module /usr/lib/apache/libdav.so
and
AddModule mod_dav.c
I am pretty sure that these were added automatically for me and that the default config file already had these lines in them which I commented out just in case (to comment them out simply insert a '#' character in front of each of these lines...
<IfDefine HAVE_DAV>
LoadModule dav_module modules/libdav.so
</IfDefine>
<IfDefine HAVE_DAV>
AddModule mod_dav.c
</IfDefine>
While you're in there look for some lines like this:
User apache
Group apache
If User and Group are set to something other than "apache" you will need to know that later.
10. Set up and configure the lock database
I set mine up in /var/db/dav and my instructions will assume that same location.
httpd.conf (located in /etc/httpd/conf) needs to have the following line added to it...
DAVLockDB /var/db/dav/DAVLock
(I put mine after the line 'DocumentRoot "/var/www/html"' and before the first '<Directory />' lines in the config file.)
Then type "mkdir /var/db/dav"
Then "chown apache:apache /var/db/dav"
If you found that the User and Group from the above step was something other than "apache" use that instead in the chown command above.
11. Edit the httpd.conf file in the user's directory that you want WebDAV enabled for and restart apache.
Here is an example that worked for me. I use WebDAV primarilly to allow the Macintosh iCal program to be able to subscribe to and publish to calendars that are hosted on my server in a WebDAV enabled folder. The calendars are located in the following directory and are owned by user: apache and group: apache (owership must be the same as the user and group found in step 9).
/home/<username>/domains/<domainname>/private_html/calendars/calendars
I want the users to be able to access this folder as:
https://<domainname>/icals
So I add the following lines to my httpd.conf file which is located in "/usr/local/directadmin/data/users/<username>/"
Alias /icals /home/<username>/domains/<domainname>/private_html/calendars/calendars
<Location /icals>
Options All
Order allow,deny
Allow from All
DAV On
</Location>
In the above examples replace <username> and <domainname> with something appropriate for your situation.
To restart Apache type "/sbin/service httpd restart"
Of course the configuration will vary for your needs but hopefully posting mine will help someone out there.
For testing purposes I recommend using Cadaver on Linux or Freebsd systems or Goliath if you are on a Mac (I have not looked into WebDAV applications for Windows, maybe somone else can post a recommendation).
Much more information can be found at
www.webdav.org.