如何在 Debian 8 上使用 Lighttpd 安装 WebDAV (Jessie)
本教程适用于这些操作系统版本
- Debian 8(杰西)
- Debian 5(莱尼)
在此页
- 1 条初步说明
- 2 安装 WebDAV
- 3 创建虚拟主机
- 4 为 WebDAV 配置虚拟主机
- 5 测试 WebDAV
- 6 个链接
本指南解释了如何在 Debian 8 (Jessie) 服务器上使用 Lighttpd 设置 WebDAV。 WebDAV 代表 Web-based Distributed Authoring and Versioning 是一组 HTTP 协议的扩展,允许用户直接在 Lighttpdd 服务器上编辑文件,这样他们就不需要通过 FTP 下载/上传.当然,WebDAV也可以用来上传下载文件。
1 初步说明
我在这里使用 IP 地址为 192.168.1.100 的 Debian 8 服务器。我的设置基于 Debian 最小服务器教程,但任何不运行 Web 服务器的 Debian 系统都应该没问题。
2 安装WebDAV
您可以安装 lighttpd(如果尚未安装)、lighttpd WebDAV 模块和 apache2-utils 包(其中包含工具 htpasswd,稍后我们将需要它来为 WebDAV 共享生成密码文件),如下所示:
apt-get -y install lighttpd lighttpd-mod-webdav apache2-utils
之后,我们必须确保目录 /var/run/lighttpd 属于 www-data 用户和组。该目录将包含 WebDAV 所需的 SQLite 数据库:
chown www-data:www-data /var/run/lighttpd/
接下来,我们启用模块 mod_auth 和 mod_webdav:
lighty-enable-mod auth
lighty-enable-mod webdav
之后重新加载Lighttpd:
service lighttpd force-reload
3 创建虚拟主机
我现在将在目录 /var/www/web1/web 中创建一个 Lighttpd 虚拟主机 (www.example.com)。如果您已经有一个想要启用 WebDAV 的虚拟主机,则必须根据您的情况调整本教程。
首先,我们创建目录 /var/www/web1/web 并让 lighttpd 用户 (www-data) 成为该目录的所有者:
mkdir -p /var/www/web1/web
chown www-data:www-data /var/www/web1/web
然后我们打开 /etc/lighttpd/lighttpd.conf 并在文件末尾添加以下虚拟主机:
nano /etc/lighttpd/lighttpd.conf
[...]
$HTTP["host"] == "www.example.com" {
server.document-root = "/var/www/web1/web"
}
之后我们重新启动 lighttpd:
service lighttpd restart
4 为 WebDAV 配置虚拟主机
现在我们用用户 test 创建 WebDAV 密码文件 /var/www/web1/passwd.dav(如果文件不存在,-c 开关会创建该文件):
htpasswd -c /var/www/web1/passwd.dav test
您将被要求输入用户测试的密码。
(如果 /var/www/web1/passwd.dav 已经存在,请不要使用 -c 开关,因为这将从头开始重新创建文件,这意味着您将失去该文件中的所有用户!)
现在我们更改 /var/www/web1/passwd.dav 文件的权限,以便只有 root 和 www-data 组的成员可以访问它:
chown root:www-data /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav
现在我们修改 /etc/lighttpd/lighttpd.conf 中的虚拟主机,使其如下所示:
nano /etc/lighttpd/lighttpd.conf
$HTTP["host"] == "www.example.com" {
server.document-root = "/var/www/web1/web"
alias.url = ( "/webdav" => "/var/www/web1/web" )
$HTTP["url"] =~ "^/webdav($|/)" {
webdav.activate = "enable"
webdav.is-readonly = "disable"
dir-listing.activate = "enable"
webdav.sqlite-db-name = "/var/run/lighttpd/lighttpd.webdav_lock.db"
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/var/www/web1/passwd.dav"
auth.require = ( "" => ( "method" => "basic",
"realm" => "webdav",
"require" => "valid-user" ) )
}
}
alias.url 指令(与 $HTTP[\url\] =~ \^/webdav($|/)\ 一起)使得当您调用 /webdav 时,将调用 WebDAV,但您仍然可以访问虚拟主机的整个文档根目录。该虚拟主机的所有其他 URL 仍然是“正常”HTTP。
之后重启Lighttpd:
service lighttpd restart
5 测试 WebDAV
我们现在将安装 cadaver,一个命令行 WebDAV 客户端:
apt-get -y install cadaver
要测试 WebDAV 是否工作,请键入:
cadaver http://www.example.com/webdav/
您应该被提示输入用户名。输入 test,然后输入用户 test 的密码。如果一切顺利,您应该被授予访问权限,这意味着 WebDAV 工作正常。输入 quit 退出 WebDAV shell:
:/home/administrator#
6个链接
- WebDAV:http://www.webdav.org/
- Lighttpd:http://www.lighttpd.net/
- Debian:http://www.debian.org/