Installing OpenBSD, mod_dav and chroot apache

If you want to install mod_dav to have WebDAV support and want to run apache chrooted you will run in some problems. With google you couldn't find a solution for a long time. On a OpenBSD Mailinglist the solution of this mod_dav locking problem was announced.

Quick setup:

  1. Install mod_dav from ports and enable it
  2. sudo mkdir -p /var/www/usr/lib/apache/modules/
  3. sudo cp /usr/lib/apache/modules/libdav.so /var/www/usr/lib/apache/modules/libdav.so
  4. sudo mkdir -p /var/www/davlockdb
  5. sudo chown www /var/www/davlockdb
  6. sudo chmod 750 /var/www/davlockdb
  7. sudo mkdir /var/www/htdocs/my.virtual.host
  8. sudo chown www /var/www/htdocs/my.virtual.host
  9. sudo chmod 750 /var/www/htdocs/my.virtual.host
  10. sudo htpasswd -c mynewuser /var/www/conf/passwd
  11. sudo vim /var/www/htdocs/conf/httpd.conf
<VirtualHost my.virtual.host:80>
  ServerAdmin admins@email
  DocumentRoot /var/www/htdocs/my.virtual.host
  ServerName my.virtual.host
  ErrorLog logs/my.virtual.host-error_log
  CustomLog logs/my.virtual.host-access_log combined
</VirtualHost>

DavLockDB /davlockdb/DavLock
<Directory /var/www/htdocs/my.virtual.host>
   DAV On
   AuthType Basic
   AuthName "Webdav access"
   AuthUserFile /var/www/conf/passwd
   AllowOverride None
   Require valid-user
   Options Indexes None
   <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
   </Limit>
</Directory>
Now restart your webserver.

Change the permissions, path etc. so it fits your need. It's also possible to put the directory configuration inside the virtualhost configuration. If you use SSL it will make more sence if you have it outside. At least when you want to forward all http requests to https.

Another way could be using LD_PRELOAD while starting Apache. Haven't tested it yet. How to do it you can find on this page.


uhrig.eu.org/openbsd/
$Id: index.html,v 1.5 2008-05-13 15:53:25 volker Exp $