如何设置WebDAV与Lighttpd在Mandriva 2008.1

如何在Mandriva 2008.1上使用Lighttpd设置WebDAV

版本1.0
作者:Falko Timme

本指南介绍了如何在Mandriva 2008.1服务器上使用lighttpd设置WebDAV。 WebDAV代表基于Web的分布式创作和版本控制 ,是HTTP协议的一组扩展,允许用户直接在lighttpd服务器上编辑文件,以便不需要通过FTP下载/上传。 当然,WebDAV也可以用来上传和下载文件。

我不会保证这将为您工作!

1初步说明

我在这里使用的IP地址为192.168.0.100的Mandriva 2008.1服务器。

2安装WebDAV

在安装任何软件包之前,我们必须启用mainmain_updatescontribcontrib_updates存储库。 请访问http://easyurpmi.zarb.org/ - 它应该提供您需要运行以启用这些存储库的命令。 在我的情况下,我跑了

urpmi.addmedia contrib ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/release with media_info/hdlist.cz
urpmi.addmedia --update contrib_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/updates with media_info/hdlist.cz
urpmi.addmedia main ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/release with media_info/hdlist.cz
urpmi.addmedia --update main_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/updates with media_info/hdlist.cz

您可以安装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_aliasmod_webdavmod_authmod_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链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏