工作点滴/

Ubuntu Server LAMP搭建WebDAV服务器

WebDAV是一种HTTP1.1的扩展协议,可以在像操作本地文件夹一样操作服务器上的文件夹,还可以支持版本控制;WebDAV的优势:

  • 一套自己定义的安全完善的身份验证机制。
  • 穿墙
  • HTTPS传送数据
  • 使用一个TCP连接传送所有文件
  • 方便的客户端工具:和局域网中的文件共享一样简单使用。

webdav安装

先确保你的server上安装了apache,然后就是启动webdav服务。

sudo a2enmod dav_fs
sudo a2enmod dav

创建一个可以共享目录并授权给apache;

sudo mkdir /var/www/webdav
sudo chown www-data:www-data /var/www/webdav
sudo mkdir /var/www/webdavpasswd

创建一个存放密码的目录并创建登陆用户;

sudo htpasswd -c /var/www/webdavpasswd/passwd.dav admin //创建用户,按提示输入两次密码
//创建的就是一个密码文档,可以sudo nano /var/www/webdavpasswd/passwd.dav查看
sudo chown www-data:www-data -R /var/www/webdavpasswd //授权密码目录给apache
sudo chmod 640 /var/www/webdavpasswd/passwd.dav //设置密码文件读写权限

最后写入Apache2配置文件;重启一下apache就OK了。

http访问

sudo nano /etc/apache2/sites-available/000-default.conf
//在000-default的virtialhost里加入以下配置
...省略
Alias /webdav /var/www/webdav
<Location /webdav>
    DAV On     
    AuthType Basic     
    AuthName "admin"     
    AuthUserFile /var/www/webdavpasswd/passwd.dav     
    Require valid-user
    Options Indexes FollowSymLinks
    AllowOverride None
</Location>
</VirtualHost>

Options Indexes FollowSymLinks:启用目录列表
AllowOverride None:禁用Apache的rewrite模块对URL进行重写

https访问

sudo nano /etc/apache2/sites-available/default-ssl.conf
//在default-ssl的virtialhost里加入以下配置
...省略
Alias /webdav /var/www/webdav
<Location /webdav>
    DAV On
    AuthType Basic
    AuthName "admin"
    AuthUserFile /var/www/webdavpasswd/passwd.dav
    Require valid-user
    Options Indexes FollowSymLinks
    AllowOverride None
</Location>
    </VirtualHost>
</IfModule>

重启apache服务(sudo /etc/init.d/apache2 restart,或sudo service apache2 restart)
在浏览器中输入http://localhost/webdav即可看到登录界面

windows下挂载webdav

win7及win10修改注册表

如果WebDAV不是https的,默认是添加不上的,需要修改注册表使得同时支持http和https;默认只支持https
打开注册表,定位到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters

把BasicAuthLevel值改成2,即同时支持http和https,默认只支持https;然后重启服务:(WIN + R)后输入

net stop webclient
net start webclient

挂载webdav

打开我的电脑->计算机->映射网络驱动器
44132-m1yvk0woxdl.png

按图输入webdav服务器地址
20372-9slhjoksrjg.png

按提示输入用户名及密码后即可

其它

注1:如果无法上传文件,是因为用户自己在webdav下新建的文件权限不对,使用winscp登录,右击webdav属性,勾选循环设定组、拥有者和权限即可!
QQ截图20180619151648.png

注2:在某些版本的Windows操作系统中,WebDAV驱动器的最大文件大小被限制为50MB。如果你试图复制超过50MB大小的文件,Windows就会弹出错误提示框。当然,这个限制是可以通过修改注册表来消除的。将注册表中位于

HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\FileSizeLimitInBytes

处的键值由50,000,000(50MB)修改为更大的数值。不过这个方法可能并不是百试百灵的。

win10和安卓FolderSync同步中并未碰到这个问题

注3:网络驱动器显示的容量和本地的系统盘容量一样是正常现象,因为WebDAV协议不支持查询服务器上磁盘的容量,所以显示为本地的系统盘容量一样

留下一条评论

共有 4 条评论

  1. 奶爸de笔记:

    ::(啊) 意思是你可以直接从你服务器同步数据,不需要注册坚果云了。

    June 9th, 2019 at 10:34 pm 回复
    1. cwz:

      对啊,我家里服务器上其实有3个程序都支持webdav,我自己用的apache里的(这个多用户麻烦),还有个是国内的网盘系统Cloudreve,直接支持多用户,还支持云存储,还有个是katana;后面两个webdav的核心代码应该是一样的,都是基于sabre

      June 9th, 2019 at 10:39 pm 回复