如何使用Apache2在Debian Etch上设置WebDAV
版本1.0
作者:Falko Timme
本指南介绍了如何在Debian Etch服务器上使用Apache2设置WebDAV。 WebDAV代表基于Web的分布式创作和版本控制 ,是HTTP协议的一组扩展,允许用户直接编辑Apache服务器上的文件,以便不需要通过FTP下载/上传文件。 当然,WebDAV也可以用来上传和下载文件。
我不会保证这将为您工作!
1初步说明
我在这里使用IP地址为192.168.0.100
的Debian Etch服务器。
2安装WebDAV
如果Apache尚未安装,请按如下方式进行安装:
apt-get install apache2
然后启用WebDAV模块:
a2enmod dav_fs
a2enmod dav
重新加载Apache:
/etc/init.d/apache2 force-reload
3创建虚拟主机
现在我将在目录/ var / www / web1 / web中
创建一个默认的Apache vhost。 为此,我将修改/ etc / apache2 / sites-available / default中
的默认Apache vhost 配置
。 如果您已经拥有要启用WebDAV的虚拟主机,则必须根据您的情况调整本教程。
首先,我们创建目录/ var / www / web1 / web
,并使Apache用户( www-data
)成为该目录的所有者:
mkdir -p /var/www/web1/web
chown www-data /var/www/web1/web
然后我们备份默认的Apache vhost配置( / etc / apache2 / sites-available / default
)并创建我们自己的配置:
mv /etc/apache2/sites-available/default /etc/apache2/sites-available/default_orig
vi /etc/apache2/sites-available/default
NameVirtualHost * <VirtualHost *> 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/apache2 reload
4配置WebDAV的虚拟主机
现在我们用用户测试
创建了WebDAV密码文件/var/www/web1/passwd.dav
(如果-c
开关不存在则创建该文件):
htpasswd -c /var/www/web1/passwd.dav test
您将被要求输入用户测试
的密码。
稍后我们将使用URL http://192.168.0.100/webdav
连接到WebDAV。 当您在Windows XP客户端上执行此操作并键入用户名测试
时,Windows将其转换为192.168.0.100 \ test
。 因此,我们现在创建一个第二个用户帐户(没有-c
开关,因为密码文件已经存在):
htpasswd /var/www/web1/passwd.dav 192.168.0.100\\test
(我们必须在用户名中使用第二个反斜杠来转义第一个!)
现在我们更改/var/www/web1/passwd.dav
文件的权限
,以便只有root
和www数据
组的成员可以访问它:
chown root:www-data /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav
现在我们在/ etc / apache2 / sites-available / default中
修改vhost,并添加以下行:
vi /etc/apache2/sites-available/default
[...] 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 * <VirtualHost *> 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/apache2 reload
5测试WebDAV
我们现在将安装cadaver
,一个命令行WebDAV客户机:
apt-get install cadaver
要测试WebDAV是否工作,请输入:
cadaver http://localhost/webdav/
应提示您输入用户名。 输入测试
,然后输入用户测试
的密码。 如果一切顺利,您应该被授予访问权,这意味着WebDAV工作正常。 键入退出
以离开WebDAV shell:
server1:~# cadaver http://localhost/webdav/
Authentication required for test on server `localhost':
Username: test
Password:
dav:/webdav/> quit
Connection to `localhost' closed.
server1:~#