如果是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工具尝试连接服务器。
#webdav #宝塔