如何在Mandriva 2009.1上使用Lighttpd设置WebDAV
本指南介绍如何在Mandriva 2009.1服务器上使用lighttpd设置WebDAV。 WebDAV代表基于Web的分布式创作和版本控制 ,是HTTP协议的一组扩展,允许用户直接在lighttpd服务器上编辑文件,以便不需要通过FTP下载/上传。 当然,WebDAV也可以用来上传和下载文件。
我不会保证这将为您工作!
1初步说明
我使用的是Mandriva 2009.1服务器,IP地址为192.168.0.100
。
2安装WebDAV
您可以安装lighttpd(如果尚未安装),lighttpd WebDAV模块和apache-base
软件包(其中包含我们稍后将需要为WebDAV共享生成密码文件的htpasswd
工具),如下所示:
urpmi lighttpd lighttpd-mod_webdav lighttpd-mod_auth apache-base
如果您已经安装了Apache,您应该现在停止它,并删除Apache的系统启动链接,以免它干扰lighttpd(即使您不知道是否安装了Apache,则可以运行以下两个命令):
/etc/init.d/httpd stop
chkconfig httpd off
然后我们启动lighttpd:
/etc/init.d/lighttpd start
接下来,我们打开/etc/lighttpd/lighttpd.conf
并在server.modules
节中启用/添加模块mod_alias
, mod_webdav
和mod_auth
( mod_webdav
在 mod_auth
! 之前列出是非常重要的):
vi /etc/lighttpd/lighttpd.conf
[...] server.modules = ( # "mod_rewrite", # "mod_redirect", "mod_alias", "mod_access", # "mod_cml", # "mod_trigger_b4_dl", "mod_webdav", "mod_auth", # "mod_status", # "mod_setenv", # "mod_fastcgi", # "mod_proxy", # "mod_simple_vhost", # "mod_evhost", # "mod_userdir", # "mod_cgi", # "mod_compress", # "mod_ssi", # "mod_usertrack", # "mod_expire", # "mod_secdownload", # "mod_rrdtool", "mod_accesslog" ) [...] |
以后重启lighttpd:
/etc/init.d/lighttpd restart
3创建虚拟主机
现在我将在目录/ var / www / web1 / web中
创建一个lighttpd vhost( www.example.com
)。 如果您已经拥有要启用WebDAV的虚拟主机,则必须根据您的情况调整本教程。
首先,我们创建目录/ var / www / web1 / web
,并将lighttpd用户和组(他们在Mandriva!上命名为apache
),该目录的所有者:
mkdir -p /var/www/web1/web
chown apache:apache /var/www/web1/web
然后我们打开/etc/lighttpd/lighttpd.conf
并将以下vhost添加到文件的末尾:
vi /etc/lighttpd/lighttpd.conf
[...] $HTTP["host"] == "www.example.com" { server.document-root = "/var/www/web1/web" } |
之后我们重新启动lighttpd:
/etc/init.d/lighttpd restart
4配置WebDAV的虚拟主机
现在我们用用户测试
创建了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用户
和apache
组的成员可以访问它:
chown root:apache /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav
现在我们用/etc/lighttpd/lighttpd.conf
修改我们的vhost,看起来如下:
vi /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($|/)" { dir-listing.activate = "enable" webdav.activate = "enable" webdav.is-readonly = "disable" 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,但仍可以访问整个文档根目录虚拟主机 该vhost的所有其他URL仍然是“正常”的HTTP。
以后重启lighttpd:
/etc/init.d/lighttpd restart
5测试WebDAV
我们现在将安装cadaver
,一个命令行WebDAV客户机:
urpmi cadaver
要测试WebDAV是否工作,请输入:
cadaver http://www.example.com/webdav/
应提示您输入用户名。 输入测试
,然后输入用户测试
的密码。 如果一切顺利,您应该被授予访问权,这意味着WebDAV工作正常。 键入退出
以离开WebDAV shell:
[root@server1 ~]# cadaver http://www.example.com/webdav/
Authentication required for webdav on server `www.example.com':
Username: test
Password:
dav:/webdav/> quit
Connection to `www.example.com' closed.
[root@server1 ~]#
6配置Windows XP客户端连接到WebDAV共享
这在https://www.youcl.com/setting-up-webdav-with-apache2-on-debian-etch-p2中 。
请在WebDAV URL中指定端口,例如http://www.example.com:80
/ webdav
。 由于某些奇怪的原因,这使得Windows XP接受普通用户名(例如测试
) - 否则Windows XP期望NTLM用户名(将具有www.example.com \ test
的格式)。
7配置Linux客户端(GNOME)连接到WebDAV共享
这在https://www.youcl.com/setting-up-webdav-with-apache2-on-debian-etch-p3中 。
8链接
- WebDAV: http : //www.webdav.org/
- Lighttpd: http : //www.lighttpd.net/
- Mandriva: http : //www.mandriva.com/