<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

When this command is executed you will be asked to type in a password for the user that has just been created. For the purposes of this example we've entered "raspberry" as our password for the user "pi", but you will want to choose your own.

If you would like to add more users you use the same command but without "-c" option.

The -c option will recreate the digest

If you would like to add further users, remember to remove "-c" option. If you keep using "-c", you'll keep replacing your digest file with a new file, and you'll erase any previous users you've added.

We need to change ownership of that the digest file to ensure Apache can read it.

How it works

The "AuthType" directive instructs Apache that for the /var/www/webdav directory, there should be authentication using the Digest scheme.

The "AuthName" directive is used to set the value for realm which is required by digest authentication. Realm is like a namespace. In case there are users with the same name, you can separate them based on their realm.

The "AuthUserFile" directive indicates where the password file is stored.

The "Require valid-user" directive will only allow users who authenticated themselves to acces WebDAV directory.

Finally, enable the Digest module and restart the server for the settings to take effect.