As a follow up to my previous post, I thought I’d dive into more detail on how to configure a site for mod_dav on a cPanel server. You can read this post to find out how to set it up on a server without a control panel.
Hire Bobcares Linux Server Administrators
Get super reliable servers and delighted customers
WARNING: The following steps assume that your current Apache configuration is in working order and that running EasyApache or rebuilding httpd.conf
will not result in the loss of configuration data/settings. Make sure you backup httpd.conf
before proceeding.
Enabling mod_dav:
1)Login to WHM and go to Main >> Software >> EasyApache (Apache Update)
and navigate your way to the “Exhaustive Options List
” section.
2)Under “Apache Built-in Modules
“, tick the box next to “Dav
“, which conveniently has the following note right under it:
“Among other things mod_dav can be used by DAV enabled Frontpage clients instead of FP extensions“
3)Save and build the configuration.
Setting up the mod_dav configuration file:
Create a custom configuration file, say webdav.conf
in the following folder:
/usr/local/apache/conf/userdata/std or ssl /1 or 2/username/domainname.com/
*Where std or ssl is determined by whether you are using SSL for the site or not.
*Where 1 or 2 depends on whether you are running Apache 1.x or 2.x.
*Where username and domainame.com should be replaced with the cPanel username and domain name of the site you are setting this up on.
So if you are setting up webdav for user bob
on the site bobcares.com
, running without SSL on Apache 2.x, the path will be:
/usr/local/apache/conf/userdata/std/2/bob/bobcares.com/
If this is the first time you are setting up a custom configuration for this site, this folder will not exist and you must create it.
The mod_dav configuration:
To enable mod_dav for the public_html
folder on a site, you simply have to put the following lines of code in the webdav.conf
file you just created:
DavLockDB /usr/local/apache/DavLock
<Directory /home/username/public_html>
Dav On
</Directory>
The DavLockDB directive is used to specify the path of the lock file. The lock file is used by mod_dav to identify which user is currently editing which file. This is the core feature of the “Distributed Authoring and Versioning” capability of mod_dav
The Directory directive specifies the shared folder inside which the files will be stored and can be edited by multiple users.
But as I mentioned in my previous post, since mod_dav is an Apache module, it will run as the Apache user “nobody”. We have to add at least one level of authentication, so we should use:
DavLockDB /usr/local/apache/DavLock
<Directory /home/username/public_html/>
Dav On
AuthType Basic
AuthName DAV
AuthUserFile /home/username/.htpasswrd/public_html/passwd
<LimitExcept GET HEAD OPTIONS>
Require user wbuser
</LimitExcept>
</Directory>
This will ensure that normal access to the public_html folder is not interrupted, but you must enter a username and password if you wish to edit the files in that folder. To add a username/password to the list, use the command:
htpasswd -b /home/username/.htpasswrd/public_html/passwd username password
Preserving the changes:
To save these changes so that these settings are not lost when httpd.conf is rebuilt. Run the following commands:
/scripts/verify_vhost_includes --commit
/scripts/ensure_vhost_includes --user=username
Where username is the username of the account. The second command will rebuild the Apache configuration and restart Apache. If you check the VirtualHost of the domain you will now see a line to include all configuration files in this include folder.
Thats it! You have now configured mod_dav for the site…enjoy!
About the Author:
Hamish works as a Senior Software Engineer in Bobcares. He joined Bobcares in July 2004, and is an expert in Control panels and Operating systems used in the Web Hosting industry. He is highly passionate about Linux and is a great evangelist of open-source. When he is not on his xbox, he is an avid movie lover and critic.
0 Comments