top of page
Writer's pictureElite Cloud

Hosting a WebDAV Server on Linux: A Practical Guide

Updated: Oct 25

Setting up a WebDAV server on Linux can change how you share files. This guide will show you how to use Apache HTTP to support WebDAV. You’ll learn to make a secure and efficient server for Windows, Mac, and Linux users.


WebDAV, short for Web Distributed Authoring and Versioning, is an extension of HTTP. It lets users manage files on remote servers without extra software. This makes it great for sharing documents, music, and more through a simple URL.


Why Use WebDAV?

WebDAV has many advantages:

  • It works on many platforms: Linux, Windows, and macOS.

  • It’s easy to set up because it uses HTTP/HTTPS.

  • It supports secure access with basic authentication.

  • It makes managing files online simple, through browsers or file manager


Installing Apache and Enabling WebDAV Modules

First, ensure your system is up to date by running `sudo apt update && sudo apt upgrade`.

Then, install Apache with `sudo apt install apache2`.


Install apache2

Start Apache by running `sudo systemctl start apache2`.


Start apache2 service

To enable WebDAV functionality in Apache, activate the required modules using `sudo a2enmod dav` and sudo a2enmod dav_fs.


Enable apache2 dav for webdev

After enabling the modules, restart Apache by running `sudo systemctl restart apache2`.


Restart apache2 again

Configuring WebDAV

Create a directory to store the WebDAV files by running `sudo mkdir /var/www/webdav`.


Make a directory for webdav

Set the appropriate ownership for this directory using `sudo chown www-data:www-data /var/www/webdav`, and adjust the permissions with `sudo chmod 755 /var/www/webdav`.


Update the permissions for webdav directory

Then change your directory by using the command `cd /var/www/webdav`.

And create a test file using the command `echo hello | sudo tee testfile.txt`.


Create a test file

Now, configure Apache to serve WebDAV. First create a configuration file using the below command.


“`

$ sudo tee /etc/apache2/sites-available/webdav.conf <<EOF

DavLockDB /usr/local/apache/DavLock

ServerName localhost

Alias /webdav /var/www/webdav

<Directory /var/www/webdav>

DAV On

DirectoryIndex disabled

AuthType Basic

AuthName “Password Required”

AuthUserFile /etc/apache2/.htpasswd

Require valid-user

</Directory>

EOF

“`


Add the config in webdav.conf

Activate the WebDAV configuration by creating a symbolic link from the sites-available directory to the sites-enabled directory using the command `sudo ln -s /etc/apache2/sites-available/webdav.conf /etc/apache2/sites-enabled/webdav.conf` which tells Apache to load this configuration:


Create a symlink of webdav to enable it

Open up the default configuration file `sudo nano /etc/apache2/sites-available/000-default.conf`.


Change the apache default site config

Then add following configuration in the end before the </VirtualHost> tag ends:


Change the apache2 default site config

“<Directory /var/www/webdav>

  Options Indexes FollowSymLinks

  AllowOverride None

  Require all granted

  Dav On

</Directory>

<Location /webdav>

  DAV On

  AuthType Basic

  AuthName “WebDAV”

  AuthUserFile /etc/apache2/.htpasswd

  Require valid-user

</Location>

And restart Apache by running `sudo systemctl restart apache2`.


Restart apache2

Setting Up Authentication

To protect your WebDAV server, create a password file using sudo htpasswd -c /etc/apache2/.htpasswd username (replace username with your desired username). This command prompts you to create a password for the user. If you want to add more users later, you can run the same command without the -c option.


Change password of user

Accessing the WebDAV Server

Once the setup is complete, access the WebDAV server by navigating to http://<your_server_IP>/webdav in a browser or WebDAV client. You will be prompted to enter the username and password created earlier.


Enter webdav password

After entering the credentials you’ll gain access to the files. Here we can see the previously created .txt file.


Access the testfile from webdav

You can also access the files via using a webdav client.


Troubleshooting

  • Firewall: Ensure that ports 80 (HTTP) and 443 (HTTPS) are open for web traffic.

  • Service Status: Check if Apache is running by using `sudo systemctl status apache2`.

  • Permissions: If there are issues with file uploads, verify the permissions of the /var/www/webdav directory.

    Troubleshoot the webdav permissions

Conclusion

Setting up a WebDAV server on Debian with Apache makes file sharing easy and secure. WebDAV lets users manage files from different platforms with authentication. By following this guide, you’ll have a working WebDAV server.


FAQ

What is WebDAV?

WebDAV is an extension of HTTP that lets users manage files on remote servers. It makes it easy to work on files together, share documents, and music collections. You can do all this without needing extra software.


What are the benefits of using WebDAV?

Using WebDAV makes sharing and accessing files easy. It works on different operating systems and devices. This means you can access your files from anywhere.


What are some common use cases for WebDAV servers?

WebDAV servers are great for sharing documents with colleagues. They’re also good for sharing music collections and accessing files across different platforms. Plus, they work well with content management systems and cloud storage.



39 views1 comment

Recent Posts

See All

1 Comment


ENTE SECX
ENTE SECX
3 days ago
Like
bottom of page