Now for the easy part. In this section we will WebDAV enable a directory under Apache root.
Please verify that the following Apache directive appears in the /usr/local/apache/conf/httpd.conf :
Addmodule mod_dav.c |
If it does not please add it. This directive informs Apache about DAV capability. The directive must be placed outside any container.
Next we must specify where Apache should store the DAVLockDB file. DAVLockDB is a lock database for the WebDAV. This directory should be writable by the httpd process.
I store the DAVLock file under /usr/local/apache/var. I use this directory for other purposes as well. Please add the following line to your /usr/local/apache/conf/httpd.conf to specify that the DAVLockDB file will be under /usr/local/apache/var :
DAVLockDB /usr/local/apache/var/DAVLock |
The directive must be placed outside any container.
As mentioned above a directory must be created for DAVLockDB that can be written by the web server process. Usually web server process runs under the user 'nobody' . Please verify this for your system using the command:
ps -ef | grep httpd |
# cd /usr/local/apache # mkdir var # chmod -R 755 var/ # chown -R nobody var/ # chgrp -R nobody var/ |
Enabling DAV is a trivial task. To enable DAV for a directory under Apache root, just add the following directive in the container for that particular directory:
DAV On |
This directive will enable DAV for the directory and its sub-directories.
The following is a sample configuration that will enable WebDAV and LDAP authentication on /usr/local/apache/htdocs/DAVtest. Place this in the /usr/local/apache/conf/httpd.conf file.
<Directory /usr/local/apache/htdocs/DAVtest> Dav On #Options Indexes FollowSymLinks AllowOverride None order allow,deny allow from all AuthName "username_and_passwd_required" AuthType Basic <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> Require valid-user </Limit> LDAP_Server your.ldap.server.com LDAP_Port 007 Base_DN "o=ROOT" UID_Attr uid </Directory> |
As mentioned in a earlier section, all DAV directories have to be writable by the WebServer process. In this example we assume WebServer is running under username 'nobody'. This is usually the case. To check httpd is running under what user, please use:
# ps -ef | grep httpd |
Create a test directory called 'DAVtest' under /usr/local/apache/htdocs :
# mkdir /usr/local/apache/htdocs/DAVtest
Change the permissions on the directory to make it is read-writable by the httpd process. Assuming the httpd is running under username 'nobody', use the following commands:
# cd /usr/local/apache/htdocs # chmod -R 755 DAVtest/ # chown -R nobody DAVtest/ # chgrp -R nobody DAVtest/ |
Finally you must run the configuration test routine that comes with Apache to verify the syntax in httpd.conf :
# /usr/local/apache/bin/apachectl configtest
If you get error messages please verify that you followed all of the above mentioned steps correctly. If you can not figure out the error message feel free to email me with the error message ([email protected]).
If the configtest is successful start the apache web-server:
# /usr/local/apache/bin/apachectl restart
Now you have WebDAV enabled Apache Server with LDAP authentication.
If you have any questions, suggestions, recommendations, kudos, comments, or complaints, please email them to me ([email protected]).
Note: Please free to contact me if you encounter any problems installing Apache or any of the modules, or if you would like upgrade your existing Apache server to support WebDAV.