Debian/Ubuntu系统在Apache2上配置WebDAV实现文件传输

上一篇文章介绍了FTP服务器程序vsftpd,这篇文章介绍WebDAV,两者各有千秋,而WebDAV使用起来相对更方便,更接近网盘的使用风格,并且可以在浏览器中打开。

WebDAV (Web-based Distributed Authoring and Versioning)是一组基于超文本传输协议的技术集合,有利于用户间协同编辑和管理存储在万维网服务器文档。


安装Apache2:

日常更新:

apt-get update

安装Apache2:

apt-get install apache2

激活WebDAV模块:

a2enmod dav_fs

重启Apache2服务:

/etc/init.d/apache2 restart

建立存放数据的目录:

建立目录:

mkdir -p /var/www/web/downloads

给予目录权限:

chmod 777 /var/www/web/downloads

给Apache用户(www-data)该目录的权限:

chown www-data /var/www/web

备份及编辑Apache配置文件:

备份配置:

mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf.old

创建新配置:

vi /etc/apache2/sites-available/000-default.conf

输入以下内容:

<VirtualHost *:80>

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

<Directory /var/www/web/>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

</VirtualHost>

重启Apache2服务:

/etc/init.d/apache2 restart

建立使用WebDAV的账号和密码:

htpasswd -c /var/www/passwd.dav webdavuser

说明:
/var/www/passwd.dav 为存储用户信息的文件,第一次创建用户需要使用 "-c" 参数,添加第二个用户的时候,可以取消该参数
webdavuser 为被创建用户的用户名,请根据自身需求修改
输入命令后会提示 "New password:" 与 "Re-type new password:",为该用户输入及重复新密码后,则提示 "Adding password for user webdavuser",表示该用户密码已被添加


修改passwd.dav权限,只有root和www-data群组成员可访问该文件:

chown root:www-data /var/www/passwd.dav

chmod 640 /var/www/passwd.dav

编辑Apache配置文件:

vi /etc/apache2/sites-available/000-default.conf

内容如下:

<VirtualHost *:80>

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

<Directory /var/www/web/>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

Alias /webdav /var/www/web

<Location /webdav>
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/passwd.dav
Require valid-user
</Location>

</VirtualHost>

说明:
从 "Alias /webdav /var/www/web" 到 "</Location>"结束,是这次添加的内容
"Alias /webdav /var/www/web" 与 "<Location /webdav>" 中的 "/webdav" 是将文件夹 "/var/www/web" 映射为虚拟文件夹 "/webdav" ,其中 "webdav" 这个文件夹名称可以自行修改
"<Location /webdav>" 与 "</Location>" 之间是开放DAV验证

重启Apache2服务:

/etc/init.d/apache2 restart

至此,Apache2上的WebDAV以配置完成。

访问格式为:
http://IP地址/webdav
http://域名/webdav
输入后会提示输入用户名及密码,正确输入后即可访问

Mac可以通过 “Finder – 前往 – 连接服务器” 访问WebDAV
Windows 可以通过 “打开计算机 – 右键点击空白处 – 添加一个网络位置” 访问WebDAV
具体使用方法这里不在详细介绍,当然,也可以通过浏览器直接访问


以下内容为补充:


更改WebDAV服务端口号:

vi /etc/apache2/ports.conf

将 "Listen 80" 中的 "80" 改为想要使用的端口号即可

vi /etc/apache2/sites-available/000-default.conf

将 "<VirtualHost *:80>" 中的 "80" 改为与 "Listen" 相同的端口号

重启Apache2服务:

/etc/init.d/apache2 restart

则访问格式变为:
http://IP地址:端口/webdav
http://域名:端口/webdav


屏蔽直接来自IP的访问,防止恶意解析:

编辑Apache配置文件:

vi /etc/apache2/sites-available/000-default.conf

内容如下:

<VirtualHost 服务器IP地址:80>
ServerName 服务器IP地址
ServerAlias 服务器IP地址
<Location />
Order Allow,Deny
Deny from all
</Location>
</virtualhost>

<VirtualHost 服务器IP地址:80>

ServerName 你的域名
ServerAlias 你的域名

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

<Directory /var/www/web/>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

Alias /webdav /var/www/web

<Location /webdav>
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/passwd.dav
Require valid-user
</Location>

</VirtualHost>

变更Apache2提示页面为跳转页面:

备份index.html:

mv /var/www/html/index.html /var/www/html/index.html.old

创建新的index.html:

vi /var/www/html/index.html

内容如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>暗夜无极 | 吾身有极,而心无极,犹如暗夜。</title>
</head>
<script>
window.location.href="https://end.pub"
</script>
<body>
</body>
</html>

说明:
"<title>" 与 "</title>" 改成你想要的标题
"window.location.href=" 后面的引号中改为你想要的网址
这样便实现了一个简易的跳转