起因是我想把nextcloud通过webdav挂在openlist上,但是失败了,报错:

failed get objs: failed to list objs: ReadDir /: Propfind "https://***.com/nextcloud/remote.php/dav/files/***/": EOF

而我挂在其他软件上没有问题,可以正常用,怀疑是openlist的问题(不支持php?),网上有人说它对webdav的支持不好。

于是我决定直接将webdav挂载到服务器上,再在openlist里添加本机存储以实现在openlist里挂载webdav。

linux挂载webdav可以参考前半部分。

安装 davfs2

根据你的 Linux 发行版安装:

Debian/Ubuntu:

sudo apt update
sudo apt install davfs2

CentOS/Fedora/RHEL:

sudo yum install davfs2
# 或
sudo dnf install davfs2

这会安装允许挂载 WebDAV 的工具。

创建挂载点目录

先创建一个目录用于挂载 WebDAV:

sudo mkdir -p /mnt/webdav

也可以放在用户目录,例如 ~/webdav。

添加用户到 davfs2 组(可选)

如果你希望普通用户可以挂载 WebDAV:

sudo usermod -aG davfs2 $USER

然后重新登录使变更生效。

编辑凭据文件(保存账号密码)

打开全局凭据文件:

sudo nano /etc/davfs2/secrets

添加一行:

/mnt/webdav 用户名 密码

Ctrl+O然后回车

再输Ctrl+X退出

⚠️ 注意权限保护:

sudo chmod 600 /etc/davfs2/secrets

这样只有 root 可以读取密码。

挂载 WebDAV

挂载命令如下(需替换为你的 WebDAV URL):

sudo mount -t davfs https://your-webdav-server/path /mnt/webdav

卸载 WebDAV

当你不需要访问时,可以这样卸载:

sudo umount /mnt/webdav

openlist里添加存储

如果openlist部署在docker内,需要设置docker挂载/mnt/webdav

然后在存储里添加本机存储