1.说明
WebDAV 是轻量的,比较方便的远程文件管理工具。可用于替代 FTP。且不要求安装专门的客户端,用浏览器就可以访问。
因此也可以方便地用于传输文件至手机、分享文件给其他人等等。特别是去打印店时,可以替代 U盘。
很多软件也直接支持使用 WebDAV 进行数据备份或者同步。个人最初尝试 WebDAV 就是为了给 OmniFoucs 进行数据同步。
WebDAV 有多种搭建方式,比如最简单的直接用 docker。这里选用 Apache2。
2.安装Apache2
首先更新 apt-get 再使用其安装 apache2
apt-get update
apt-get install apache2
激活 WebDAV 相关组件
a2enmod dav_fs
a2enmod dav
3.配置WebDAV
安装 vim 用于后续配置编辑
apt-get install vim -y
创建配置文件
vi /etc/apache2/sites-available/webdav.conf
用以下配置
DavLockDB /var/www/mywebdav/DavLock
<VirtualHost *:80>
ServerAdmin root@localhost
DocumentRoot /var/www/mywebdav/webdav
Alias /webdav /var/www/mywebdav/webdav
<Directory "/var/www/mywebdav">
DAV On
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
AuthType Basic
#登陆 WebDAV 使用的用户名,可修改
AuthName "pp"
AuthUserFile /var/www/mywebdav/passwd.dav
Require valid-user
</Directory>
</VirtualHost>
Esc,输入:wq回车保存退出
创建软链接至 enable 文件夹
ln -s /etc/apache2/sites-available/webdav.conf /etc/apache2/sites-enable/webdav.conf
创建虚拟主机目录
mkdir -p /var/www/mywebdav/webdav
赋予权限
chown -R www-data /var/www/mywebdav/webdav
创建密钥文件,最后关键字为登陆用户名。输入后要求输入两遍密码
htpasswd -c /var/www/mywebdav/passwd.dav
pp
最后重启 apache2
service apache2 restart
4.测试
有很多种 WebDAV 的连接方式,可以直接浏览器输入 http://服务器ip或域名/webdav。正常情况下应该会出现要求输入用户名和密码的弹窗,并且输入成功后能看到空的目录。
如果用 Mac 的话,可以使用 Finder ,Command+K
输入 http://服务器ip或域名/webdav
尝试上传、删除、下载一些文件,看看是否一切正常。
5.反向代理为https
由于 WebDAV 通常对安全和加密有一些需求,建议使用 https。
有多种方式用 https,比如直接在 apache2 配置中进行修改,可参考:
DavLockDB /var/www/mywebdav/DavLock
VirtualHost *:443>
ServerAdmin root@localhost
ServerName webdav.pangruitao.com
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
#证书相关文件目录
SSLCertificateFile cert/webdav.pangruitao.com/webdav.pangruitao.com_public.crt
SSLCertificateKeyFile cert/webdav.pangruitao.com/webdav.pangruitao.com.key
SSLCertificateChainFile cert/webdav.pangruitao.com/webdav.pangruitao.com_chain.crt
DocumentRoot /var/www/mywebdav/webdav
Alias /webdav /var/www/mywebdav/webdav
<Directory "/var/www/mywebdav">
DAV On
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
AuthType Basic
#登陆 WebDAV 使用的用户名,可修改
AuthName "pp"
AuthUserFile /var/www/mywebdav/passwd.dav
Require valid-user
</Directory>
ErrorLog /var/log/httpd/mywebdav_error.log
CustomLog /var/log/httpd/mywebdav_access.log common
</VirtualHost>
#将80的请求转至443,可以不用
<VirtualHost :80>
ServerAdmin root@localhost
ServerName webdav.pangruitao.com
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.)$ https://%{SERVER_NAME}$1 [L,R]
</VirtualHost>
也可以使用反向代理达到 https 的目的,详见:
6.资料
https://www.howtoforge.com/setting-up-webdav-with-apache2-on-debian-etch
大佬我想用只有一个文件的自签名证书,证书相关文件目录那里该怎么填呢