如何设置WebDAV与Apache2在Mandriva 2009.1

如何设置WebDAV与Apache2在Mandriva 2009.1 本指南解释如何在Mandriva 2009.1服务器上使用Apache2设置WebDAV。 WebDAV stan ...

如何在Mandriva 2009.1上使用Apache2设置WebDAV

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

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

1初步说明

我使用的是Mandriva 2009.1服务器,IP地址为192.168.0.100

2安装WebDAV

首先,我们更新我们的包数据库:

urpmi.update -a

接下来我们安装Apache和Apache WebDAV模块:

urpmi apache apache-mod_dav

接下来,我们打开/etc/httpd/conf/httpd.conf并取消注释LoadModule部分中的以下三行请确保在这些行的末尾删除以下字符串,否则Apache可能会抱怨语法错误: - >可用在apache-mod_dav包中 ):

vi /etc/httpd/conf/httpd.conf

[...]
LoadModule dav_module modules/mod_dav.so
[...]
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_lock_module modules/mod_dav_lock.so
[...]

然后重新启动Apache:

/etc/init.d/httpd restart

3创建虚拟主机

现在我将在目录/ var / www / web1 / web中创建一个默认的Apache vhost。 为此,我将在/etc/httpd/conf/httpd.conf的末尾添加一个默认的vhost。 如果您已经拥有要启用WebDAV的虚拟主机,则必须根据您的情况调整本教程。

首先,我们创建目录/ var / www / web1 / web ,并使Apache用户和组( apache )成为该目录的所有者:

mkdir -p /var/www/web1/web
chown apache:apache /var/www/web1/web

然后在/etc/httpd/conf/httpd.conf的末尾添加新的vhost:

vi /etc/httpd/conf/httpd.conf

[...]
NameVirtualHost *:80
<VirtualHost *:80>
        ServerAdmin webmaster@localhost

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

</VirtualHost>

然后重新加载Apache:

/etc/init.d/httpd reload

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/httpd/conf/httpd.conf的末尾修改vhost,并添加以下行:

vi /etc/httpd/conf/httpd.conf

[...]
        Alias /webdav /var/www/web1/web

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

Alias指令(与<Location>一起)使得当您调用/ webdav时,调用WebDAV,但仍可以访问vhost的整个文档根目录。 该vhost的所有其他URL仍然是“正常”的HTTP。

最终的vhost应该是这样的:

[...]
NameVirtualHost *:80
<VirtualHost *:80>
        ServerAdmin webmaster@localhost

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

        Alias /webdav /var/www/web1/web

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

</VirtualHost>

之后重新加载Apache:

/etc/init.d/httpd reload

5测试WebDAV

我们现在将安装cadaver ,一个命令行WebDAV客户机:

urpmi cadaver

要测试WebDAV是否工作,请输入:

cadaver http://localhost/webdav/

应提示您输入用户名。 输入测试 ,然后输入用户测试的密码。 如果一切顺利,您应该被授予访问权,这意味着WebDAV工作正常。 键入退出以离开WebDAV shell:

[root@server1 ~]# cadaver http://localhost/webdav/
Authentication required for webdav on server `localhost':
Username: test
Password:
dav:/webdav/> quit
Connection to `localhost' closed.
[root@server1 ~]#