Enable WebDAV on Linux
Caution
This article was published more than a year ago, there may have been developments.
Please take this into account.
WebDAV (acronym for Web Distributed Authoring and Inersioning) is an HTTP protocol extension that enables clients to perform operations on the remote server.
WebDAV is nothing new, it was first introduced in 1996 and it has been the standard ever since de facto of many web applications.
WebDAV is directly dependent on and connected to Apache2. However, by installing the webserver we will not automatically enable WebDAV as well. By the end of this article you will know how to activate WebDAV on a Linux computer. We assume that on the PC in question there is already an active and functioning LAMP installation. I'll use Ubuntu for the occasion 20.04 LTS.
Enable modules
First we enable the modules necessary for the functioning of WebDAV. We open a terminal and type:
~$ sudo a2enmod dav
~$ sudo a2enmod dav_fs
We restart the web server with the command:
~$ sudo /etc/init.d/apache2 restart
Virtual host configuration
In the next step you will create the necessary environment for the host to operate: specific directories, related permissions, changes to the file .conf
in Apache.
We will now create the root directory. For simplicity we will call it webdav
.
~$ sudo mkdir -p /var/www/webdav
It is important that the owner of the directory and all content is Apache:
~$ sudo chown www-data.www-data /var/www/webdav
In the next step we will create a file .conf
which will contain instructions for Apache for it to “notice” of the virtual host:
~$ sudo nano /etc/apache2/sites-available/webdav.conf
The contents of the file:
NameVirtualHost *
<VirtualHost *:80>
ServerAdmin webmaster@domain
DocumentRoot /var/www/webdav/
<Directory /var/www/webdav/>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Alias /webdav /var/www/webdav
<Location /webdav>
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/webdav/passwd.dav
Require valid-user
</Location>
Note the local address “webmaster@domain
“. You will need to enter the real address of the site administrator. Now let's save and close the file with ctrl + o
and ctrl + c
.
Let's copy the webdav.conf file from “sites available” to “enabled sites” with this command:
~$ sudo a2ensite webdav.conf
Before restarting Apache we need to create a password to access the WebDAV shares (USER
must be a user of the system):
~$ sudo htpasswd -c /var/www/webdav/passwd.dav USER
Now that the passwd.dav
containing the password we must make it accessible and visible only to the system administrator root
and group members www-data
:
~$ sudo chown root:www-data /var/www/webdav/passwd.dav
~$ sudo chmod 640 /var/www/webdav/passwd.dav
We restart Apache with the previous command:
~$ sudo /etc/init.d/apache2 restart
If everything went as planned, the system should be active.
Test
Testing a WebDAV installation is very simple. There is a simple tool to install and use for this purpose: Cadaver.
~$ sudo apt install cadaver
Once installed, launching it is even easier:
~$ cadaver http://IP_DEL_SERVER/webdav
The system should now ask for user and password. We enter the configured user name and the relative password. If all went well, a prompt like this will be shown:
dav:/webdav/>
Now that the installation has gone smoothly, we can connect WebDAV to any tool that supports it as desired. As already mentioned WebDAV is a not new project that has become a standard over the years and is natively supported by all operating systems (without installing third-party drivers or software). Just write the WebDAV server address in the address bar of any file manager that the operating system is Windows, Mac, Linux, or mobile devices. After prompting for credentials, in all cases a position will be mounted on which we can operate as if it were a local resource (like a USB stick).
Conclusions
WebDAV can be used as a collaborative suite (this was originally the purpose of the project), but most of its application today is as remote storage. WebDAV is a service that can be activated on most NAS and even some hosts have a service running on it (for example cPanel has a module called Web Disk… guess what it is). It is a very tested software, open source and reliable and if I were to start a project that involves linking multiple collaborators into a single project it would be my first preference.
0 Comments