一、安装Apache2服务

首先安装 Apache2 并启用 WebDAV 模块

sudo apt install apache2

禁用默认页面

sudo a2dissite 000-default
sudo service apache2 reload

二、配置虚拟主机

在/etc/apache2/sites-available/ 目录下并创建一个配置文件:

cd /etc/apache2/sites-available/
sudo nano webdav.local.conf

添加以下内容:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

创建 /var/www/webdav/ 目录,测试索引文件并设置正确的所有权:

sudo mkdir /var/www/webdav
sudo sh -c 'echo "Welcome from WebDAV.local" > /var/www/webdav/index.html'
sudo chown www-data:www-data /var/www/webdav

启用新站点并重新加载 Apache2:

sudo a2ensite webdav.local
sudo service apache2 reload

操作完成后,你能看到 “Welcome from WebDAV.local”。

image-20260412190409-zzu3b98.png

三、启用WebDAV模块

启用和配置 WebDAV 模块。

sudo a2enmod dav_fs

为 WebDAV 数据创建一个目录和文件来测试服务是否被安全启动:

sudo mkdir /var/www/webdav/happy
sudo touch /var/www/webdav/happy/linuxconfig.txt
sudo chown www-data:www-data /var/www/webdav/happy

编辑虚拟主机配置 /etc/apache2/sites-available/webdav.local.conf 进行 WebDAV 设置:

...
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
#在前面的基础上加入
        Alias /svn /var/www/webdav/svn
        <Location /svn>
            DAV On
        </Location>

重新启动 Apache2 以应用更改:

sudo service apache2 restart

进入测试页面:

image-20260412191037-jj94iwu.png

四、设置访问密码

设置用户验证(可选): 使用用户验证保护 WebDAV 目录。
创建密码文件并添加用户:

sudo mkdir /usr/local/apache2/
sudo htpasswd -c /usr/local/apache2/webdav.passwords linuxconfig

编辑虚拟主机配置以包含身份验证设置:

...
<Location /happy>
    DAV On
    AuthType Basic
    AuthName "webdav"
    AuthUserFile /usr/local/apache2/webdav.passwords
    Require valid-user
</Location>

重启 Apache2:

sudo service apache2 restart

至此,你已经成功配置完webdav了。

常见问题

1.端口占用

通常80端口会被Ngnix服务占用。如果你的80端口在其他服务中已经被使用,可以将通过下面办法更改端口:

  1. Apache2的配置文件位于/etc/apache2/ports.conf,打开ports.conf文件

    sudo nano /etc/apache2/ports.conf
  2. 打开配置文件并找到 Listen 指令。默认情况下,Listen 指令可能如下:

    Listen 80
  3. 如果你想改为7766端口只需将此文件改为:

    Listen 7766
  4. 进入/etc/apache2/sites-available/文件夹,对webdav.local.conf文件同步进行更改:

    <VirtualHost *:80>改为<VirtualHost *:7766>

    即:

    <VirtualHost *:7766>
            ServerAdmin webmaster@localhost
            Servername webdav.local
    
            DocumentRoot /var/www/webdav
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
            </Directory>
            <Directory /var/www/webdav/>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride None
                    Order allow,deny
                    allow from all
            </Directory>
    </VirtualHost>
  5. 保存后重启Apache2服务

    sudo systemctl restart apache2

2.端口放行

在配置完文件后仍然无法访问可以检查服务器是否未放行对应端口

  1. 首先检查云服务器厂商的防火墙是否放行对应端口。以腾讯云为例:

    image-20260412192233-r20iug3.png

    image-20260412192300-sz012b1.png

  2. 如果你安装了宝塔面板,那你还需要在宝塔面板中放行对应端口:

    image-20260412192359-6b3c38l.png

    image-20260412192413-i9qutvh.png