Duke Yin's Technology database

宝塔面板搭建WebDAV服务

如果是Nginx,使用如下命令检测是否已经安装nginx-dav-ext-module,如果没有安装的话,WebDAV功能会受限:

nginx -V 2>&1 | grep -o dav_ext

如果输出路径说明已经安装。

如果没有任何输出,就需要安装:

1.备份当前Nginx

执行 cp -r /www/server/nginx /www/server/nginx.bak 备份当前编译好的程序目录。各站点的配置文件在 /www/server/panel/vhost/nginx/ 下,重装 Nginx 不会删除这些文件,但保险起见也建议打包备份一份。

2.卸载当前Nginx

宝塔面板 → 软件商店 → 已安装 → 找到 Nginx → 卸载。卸载时不要删除网站目录和 vhost 配置目录,只是移除 Nginx 程序本身。

3.重新安装

再次在软件商店安装 Nginx,安装方式选择「编译安装」而不是「极速安装」(极速安装是预编译二进制,不支持追加自定义模块)。

4.填写自定义模块信息

在编译选项里找到「添加自定义模块」,填写:模块名称 http_dav_ext;模块参数 –add-module=/root/nginx-dav-ext-module;前置脚本 git clone https://github.com/arut/nginx-dav-ext-module.git /root/nginx-dav-ext-module 。注意:不需要额外加 –with-http_dav_module, dav_methods 已经能用,说明这个官方模块已经编译进去了。

5.确认系统已装 libxml2 开发库

新版 nginx-dav-ext-module (v3+) 依赖 libxml2/libxslt 而不是旧版的 libexpat。如果是 Debian/Ubuntu 提前执行 apt install -y libxml2-dev libxslt1-dev;如果是 CentOS/Alma 执行 yum install -y libxml2-devel libxslt-devel,避免编译过程中途报错。

6.开始编译并等待完成

点击编译安装,视服务器性能可能需要 10-30 分钟。完成后执行 nginx -V 2>&1 | grep dav_ext 确认能看到模块路径(类似 –add-module=/root/nginx-dav-ext-module),说明模块编译成功。

7.在主配置文件中启用锁功能

编辑主配置文件 /www/server/nginx/conf/nginx.conf,在最外层的 http { … } 块内(不是某个站点的 server 块里)加一行:dav_ext_lock_zone zone=davlock:10m; 这是全局共享内存区,用来存放 WebDAV 的写锁状态,必须写在 http 层级,否则站点配置里的 dav_ext_lock 指令会报错。

新建一个网站

需要修改网站的配置文件,在配置文件末尾,最后一个大括号之前添加

    # 解除上传文件大小限制
    client_max_body_size 0; 

    location / {
        # 这里保留宝塔原有的 root 指令,例如:root /www/wwwroot/你的网站目录;
        
        # 开启目录浏览
        autoindex on;
        
        # 开启基本 WebDAV 方法
        dav_methods PUT DELETE MKCOL COPY MOVE;
        
        # 尝试开启扩展方法(如果保存后重启 Nginx 报错,请将下面这行删掉或注释掉)
        # dav_ext_methods PROPFIND OPTIONS;
        
        # 允许创建嵌套目录
        create_full_put_path on;
        
        # 设置权限
        dav_access user:rw group:rw all:r;
    }

在网站目录中打开“密码访问”,填入你希望的用户名密码

接下来就可以用WebDAV工具尝试连接服务器。

# #

发布评论

评论

标注 * 的为必填项。