首先介绍一下WebDAV
1.简而言之,WebDAV是一种HTTP1.1的扩展协议,可以在像操作本地文件夹一样操作服务器上的文件夹,还可以支持版本控制。
2.WebDAV的优势: 一套自己定义的安全完善的身份验证机制。穿墙 HTTPS传送数据,使用一个TCP连接传送所有文件,方便的客户端工具,和局域网中的文件共享一样简单使用。
开始前先确保你的server上安装了apache2,然后就是启动webdav服务。
sudo a2enmod dav_fs
sudo a2enmod dav
sudo a2enmod dav_lock
创建一个可以共享目录并授权给apache
sudo mkdir /var/www/webdav
sudo chown www-data:www-data /var/www/webdav
创建一个存放密码的目录并创建登陆用户;
sudo mkdir /var/webdavpasswd
创建用户
sudo htpasswd -c /var/webdavpasswd/passwd.dav admin
授权密码目录给apache
sudo chown www-data:www-data -R /var/webdavpasswd
设置密码文件读写权限
sudo chmod 640 /var/webdavpasswd/passwd.dav
最后写入Apache2配置文件并重启一下apach2。
配置虚拟主机:
sudo vim /etc/apache2/sites-available/webdav.conf
在文件中插入以下内容并保存(示例)
<VirtualHost *:448>
ServerName example.com
ServerAlias example.com
SSLEngine on
SSLCertificateFile /etc/ssl/fullchain.crt
SSLCertificateKeyFile /etc/ssl/private.pem
DocumentRoot /mnt/
Alias /webdav /mnt
<Directory /mnt/>
DAV On
Options +Indexes
IndexOptions FancyIndexing
AddDefaultCharset UTF-8
AuthType Basic
AuthName "WebDav"
AuthUserFile /var/webdavpasswd/passwd.dav
Require valid-user
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
启用已创建站点配置文件::
a2ensite webdav.conf
测试配置文件语法:
sudo apachectl configtest
添加开放端口:
sudo vim /etc/apache2/ports.conf
在文件中插入以下内容并保存(示例)
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80
Listen 83
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
重新加载apache2
systemctl reload apache2
验证
使用命令行 cadaver 进入登录
sudo apt-get install cadaver
cadaver http://127.0.0.1:80/webdav