介绍
本文将介绍在Ubuntu Linux上安装和配置WebDAV服务器。 WebDAV代表Web分布式创作和版本控制,并允许连接的用户通过HTTP协议在线编辑和共享数据。当与Subversion或OpenLink Virtuoso结合使用时,这使WebDAV成为开发人员的流行选择。客户端数量从davfs2开始支持WebDAV,这使得可以安装WebDAV的数据存储以包括到本地文件系统中。这可以通过对具有本地WebDAV支持的各种GUI应用程序执行mount命令来完成,例如Nautilus,konqueror等。此外,在本指南中,我们将WebDAV与Apache2服务器结合在一起。
情境
在本节中,我想描述本教程中使用的场景。 WebDAV可以是非常灵活的服务,它允许许多配置设置和方案。在本WebDAV教程中,我们将从最简单的基本启动WedDAV配置开始,然后从那里开始进行配置,以适应更复杂的环境。您可以将WebDAV视为现有网站配置的HTTP扩展。通常,您可能已经启动并运行了apache网站。因此,在这种情况下,要包括WevbDAV服务,您需要做的就是:
- 创建其他上传数据目录以供WebDAV使用
- 配置您现有的apache2虚拟主机文件
但是,在本指南中,我们将从apache2安装,虚拟主机创建等开始,从头开始。因此,请随时跳到最适合您的配置要求的任何部分。
在本指南中,我们将配置:
- webdav.local-这将是在IP 10.1.1.61服务器上运行的虚拟主机
- webdav.local /svn-这将是启用WebDAV的目录
- /var /www /webdav-存放webdav.local的索引文件的目录
- /var /www /webdav /svn-存放webdav.local /svn的目录WebDAV的数据存储
相应地编辑DNS设置,或更改客户端的/etc /hosts文件以包括上述主机webdav.local分辨率。
(adsbygoogle = window.adsbygoogle || [])。push({});
Apache和WebDAV安装
在本节中,我们将简单地安装apache2并启用WebDAV模块。 WebDAV模块随apache2安装一起提供,但是,默认情况下未启用。所有这些都可以通过两个简单的命令来完成:
$ sudo apt-get install apache2
现在,您应该可以访问位于http://webdav.local的默认网站。如果一切顺利,请禁用默认页面,因为我们不再使用它:
$ sudo a2dissite default
$ sudo service apache2 reload
配置虚拟主机
此时,我们需要使用ServerName:webdav.local和附加的目录/var /www /webdav配置虚拟主机。为此,请导航至/etc /apache2 /sites-available /:
$ cd /etc/apache2/sites-available/
并创建一个名为webdav.local的新站点配置文件,其内容如下:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
Servername webdav.local
DocumentRoot /var/www/webdav
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/webdav/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
完成后,我们需要创建一个适当的/var /www /webdav /目录:
$ sudo mkdir /var/www/webdav
将所有者更改为apache:
$ sudo chown www-data.www-data /var/www/webdav
并启用新网站webdav.local
$ sudo a2ensite webdav.local
为了测试它,我们可以创建一些简单的index.html文件:
$ sudo sh -c 'echo "Welcome from WebDAV.local" > /var/www/webdav/index.html'
最后重新加载apache2网络服务器:
$ sudo service apache2 reload
现在,您应该能够将浏览器导航到http://webdav.local并在屏幕上看到消息:来自WebDAV.local的欢迎。这样就结束了带有虚拟主机webdav.local的apache2 Web服务器的安装。
(adsbygoogle = window.adsbygoogle || [])。push({});
WebDAV设置
现在该启用WebDAV的模块了:
$ sudo a2enmod dav_fs
Considering dependency dav for dav_fs:
Enabling module dav.
Enabling module dav_fs.
并重新启动apache服务器:
$ sudo service apache2 restart
现在一切就绪,我们可以设置基本的WebDAV服务器。通过创建其他目录来保存WebDAV数据,可以轻松完成此操作:
基本配置
$ sudo mkdir /var/www/webdav/svn
使它可被apache写入也很重要,否则会出现403 Forbidden错误:
$ sudo chown www-data.www-data /var/www/webdav/svn/
并为我们的新虚拟主机webdav.local启用WebDAV。这可以通过将以下行添加到代码块中来完成:
Alias /svn /var/www/webdav/svn
<Location /svn>
DAV On
</Location>
以上是通过启用WebDAV的目录/var /www /webdav /svn进行访问的,可通过http://webdav.local/svn进行访问。对现有的/etc/apache2/sites-available/webdav.local配置文件进行上述修改,然后重新启动apache Web服务器。这是现阶段整个/etc/apache2/sites-available/webdav.local文件的外观:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
Servername webdav.local
DocumentRoot /var/www/webdav
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/webdav/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Alias /svn /var/www/webdav/svn
<Location /svn>
DAV On
</Location>
</VirtualHost>
现在该测试我们的配置了。一种方法是将浏览器指向http://webdav.local/svn,甚至更好的方法是使用尸体工具。首先使用以下命令安装尸体:
$ sudo apt-get install cadaver
使用dd创建相同的数据文件以上传到您的WebDAV目录并上传:
$ dd if=/dev/zero of=mydata.dat bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.075726 s, 138 MB/s
$ cadaver http://webdav.local/svn
dav:/svn/> put mydata.dat
Uploading mydata.dat to `/svn/mydata.dat':
Progress: [=============================>] 100.0% of 10485760 bytes succeeded.
dav:/svn/> quit
Connection to `webdav.local' closed.
现在,您应该已经配置了基本的WebDAV服务器并可以使用了。在下一节中,我们将添加一些基本的用户身份验证。
具有用户身份验证的WebDAV
如果打算将WebDAV服务器部署在远程主机上,则建议至少执行一些基本身份验证。幸运的是,使用htpasswd命令并重新配置我们现有的/etc/apache2/sites-available/webdav.local配置文件。
首先创建一个目录,您要在其中存储webdav的密码文件。这是您选择的位置。在本教程中,我使用/usr /local /apache2 /:
$ sudo mkdir /usr/local/apache2/
然后,使用htpasswd创建一个新的密码文件,所有用户都将通过该文件进行身份验证。
$ sudo htpasswd -c /usr/local/apache2/webdav.passwords lubos
如果您需要添加更多用户,请使用上述语法,但是忽略-c选项,因为它将覆盖您现有的文件。
现在,身份验证文件已经准备就绪,我们需要将身份验证添加到当前的/etc/apache2/sites-available/webdav.local配置文件中。新更改以粗体突出显示:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
Servername webdav.local
DocumentRoot /var/www/webdav
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/webdav/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Alias /svn /var/www/webdav/svn
<Location /svn>
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /usr/local/apache2/webdav.passwords
Require valid-user
</Location>
</VirtualHost>
(adsbygoogle = window.adsbygoogle || [])。push({});
从现在开始,如果您尝试访问WebDAV服务器,则需要先进行身份验证。这是一个WebDAV身份验证示例:
$ cadaver http://webdav.local/svn
Authentication required for webdav on server `webdav.local':
Username: lubos
Password:
dav:/svn/> ls
Listing collection `/svn/': succeeded.
mydata.dat 10485760 Feb 20 14:45
dav:/svn/>
限制WebDAV访问
此外,建议将WebDAV访问限制为有限数量的用户。例如,如果我们只允许单用户”Lubos”访问我们的WebDAV存储库,则可以通过在伪指令内添加一个子句来做到这一点,例如:
<Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
AuthType Basic
AuthName "webdav"
AuthUserFile /usr/local/apache2/webdav.passwords
Require user lubos
</Limit>
由于用户可以访问文件并将其上传到任何启用了WebDAV的目录,因此也建议禁止使用.httaccess文件。因此,添加:
AllowOverride None
在指令中。
挂载启用WebDAV的目录
正如之前已经提到的那样,WebDAV得到大量客户端的支持。也可以将WebDAV目录安装到本地系统中,以充当文件系统的一部分。为此,我们首先需要以root用户身份安装davfs2:
# apt-get install davfs2
然后创建一个挂载点:
# mkdir /mnt/webdav
最后用mount命令挂载它:
# mount.davfs http://webdav.local/svn /mnt/webdav/
Please enter the username to authenticate with server
http://webdav.local/svn or hit enter for none.
Username: lubos
Please enter the password to authenticate user lubos with server
http://webdav.local/svn or hit enter for none.
Password:
# cd /mnt/webdav/
# ls
lost+found mydata.dat
# touch linuxcareer.com.txt
# sync
结论
本文介绍了使用Apache2 Web服务器来入门的WebDAV服务的基本配置。几乎没有安全问题需要考虑,因此您需要做功课并查阅Apache Module mod_dav文档以获取更多配置设置和安全性增强功能以改善您的配置。