Installation of DAVAdmin

To install DAVAdmin you need:

  • an Apache 2.2 webserver http://httpd.apache.org/
    • mod_auth_digest
    • mod_dav
    • mod_env
    • mod_auth_file
    • mod_authz_groupfile
  • administration privileges for the webserver or a cooperative ISP
  • shell access to create administration users for you DAVAdmin installation
  • for site installation you need write access to a globally available directory on the webserver host (i.e. /usr/local)
  • installed Smarty template engine available for PHP as smarty in the php include, on Debian just install the smarty package.

DAVAdmin installation

Download the release file from the downloads page.

Extract the release file in a directory

cd /usr/local
tar xzf davadmin-0.1.tar.gz

Apache Setup

The following apache configuration file snippet shows the configuration of a VirtualHost to use WebDAV for a directory dav inside the VirtualHost's document root:

<VirtualHost 127.0.0.1:80>
  ServerAdmin jan@davhost.example.com
  ServerName dav.localhost

  DavLockDb /var/run/apache2/davlock/davhost.example.com
  DocumentRoot /var/www/html
  Alias /davadmin /usr/local/davadmin-0.1/admin

  php_admin_value allow_call_time_pass_reference 1
  <Directory /var/www/html/dav>
    Dav on
    AllowOverride AuthConfig Indexes
    Order Allow,Deny
    allow from all

    AuthType Digest
    AuthName "WebDAV on davhost.example.com"
    AuthDigestDomain /dav/ 
    
    AuthDigestProvider file
    AuthUserFile /var/www/auth/dav.htdigest
    AuthGroupFile /var/www/auth/dav.groups
    require valid-user
  </Directory>

  <Location /davadmin>
    AuthType Digest
    AuthName "WebDAV Administration"
    AuthDigestDomain /davadmin http://davhost.example.com/davadmin

    SetEnv DavAdminConfDir /var/www/conf

    AuthDigestProvider file
    AuthUserFile /var/www/auth/davadmin.htdigest
    require valid-user
  </Location>

  ErrorLog /var/log/apache2/davhost.example.com_error.log
  LogLevel warn
  CustomLog /var/log/apache2/davhost.example.com_access.log combined
</VirtualHost>

The snippet is included in the release file as davadmin.vhost inside the directory setup. You will want to change the IP address, directory names, realm names (AuthName directive), and other settings relevant for your site.

All following instructions refer to the information used in the above configuration snippet. You need to make sure that you have write access to the used files or have a friendly administrator at hand who performs the tasks for you.

Creating necessary files and directories

mkdir -p /var/www/auth
mkdir -p /var/www/html/dav
mkdir -p /var/www/conf
touch /var/www/auth/dav.htdigest
touch /var/www/auth/dav.groups
touch /var/www/auth/dav.namemap

Granting neccessary write access to the apache user

In the following lines we assume your apache user is www-data (Debian's default). Consult your operating system manual to find out what is the correct username for your system.

Creation of DAVAdmin users

To add DAVAdmin users you need to create the authentication file using Apache's htdigest tool.

htdigest -c /var/www/auth/davadmin.htdigest "WebDAV Administration" admin

The tool asks you for the password for the user admin and a confirmation of the password.

Using ACLs

If you have an ACL enabled file system you may use the following instructions to grant the necessary rights.

  • grant write access to the WebDAV root:
    setfacl -d -m u:www-data:rwx /var/www/html/dav
    setfacl -m u:www-data:rwx /var/www/html/dav
    
  • grant write access to the authentication and authorization files
    setfacl -m u:www-data:rw- /var/www/auth/dav.htdigest /var/www/auth/dav.groups /var/www/auth/dav.namemap
    

Without using ACLs

If you cannot use ACLs you have two options:

  • making the directories and files world writable
    chmod 0777 /var/www/html/dav
    chmod 0666 /var/www/auth/dav.htdigest /var/www/auth/dav.groups /var/www/auth/dav.namemap
    
  • changing the owner of the files to the apache user
    chown www-data /var/www/html/dav
    chown www-data /var/www/auth/dav.htdigest /var/www/auth/dav.groups /var/www/auth/dav.namemap
    

DAVAdmin configuration

DAVAdmin is configured via a file config.inc.php in the directory defined via the SetEnv DavAdminConfDir directive in the apache configuration. For the above setup the configuration file has the following content:

<?php
/*
 * DavAdmin configuration file.
 */

$davconfig = array(
    'compile_dir' => '/var/www/templates_c',
    'digest.file' => '/var/www/auth/dav.htdigest',
    'group.file' => '/var/www/auth/dav.groups',
    'namemap.file' => '/var/www/auth/dav.namemap',
    'dav.dir' => '/var/www/html/dav',
    'dav.realm' => 'WebDAV on davhost.example.com',
    'dav.uri' => 'http://davhost.example.com/dav/',
    );
?>

Restart apache

To make the setup active you need to restart your apache webserver. On a Debian system with sudo use:

sudo invoke-rc.d apache2 restart

For other systems please read the manuals on how to restart the apache webserver.