如何在Ubuntu12.04上使用Apache配置WebDAV访问

来自菜鸟教程
跳转至:导航、​搜索

状态: 已弃用

本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:

原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.

请参阅: 本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。


介绍


WebDAV 是内置于 HTTP 中的分布式 Web 创作实现,可让您轻松共享文件并与他人协作。

我们可以在 Web 服务器中安装此扩展程序,以允许通过 Web 浏览器对本地文件进行远程读写访问。 在本指南中,我们将在带有 Apache Web 服务器的 Ubuntu 12.04 VPS 上配置 WebDAV。

在 VPS 上安装 Apache


我们的 WebDAV 实现将通过使用 WebDAV 模块在 Apache 上建立。

首先,您需要从 Ubuntu 的默认存储库安装 Apache。

sudo apt-get update
sudo apt-get install apache2

您现在已经安装了一个功能齐全的 Web 服务器。 它应该已经可以通过在 Web 浏览器中导航到您的服务器的 IP 地址来访问。

启用 WebDAV


Apache 通过几个模块内置了对 WebDAV 的支持。 我们只需要让他们能够访问他们的功能。

使用以下两个命令启用 WebDAV 模块:

sudo a2enmod dav
sudo a2enmod dav_fs

我们现在需要重新启动服务器以实现更改:

sudo service apache2 restart

WebDAV 作为一项功能现已启用,但我们还没有为我们的服务器正确配置它。

创建文件系统


我们将创建一个目录来存放我们的 WebDAV 文件内容。

Ubuntu 上 Apache 服务器的默认文档根目录位于 /var/www。 但是,我们将创建一个别名,这将允许我们将目录内容保存在其他地方。

在本指南中,我们将把我们的 WebDAV 内容放在 /webdav/

sudo mkdir /webdav

将新目录的所有权授予 Web 用户,即 www-data,以便它可以正确地提供内容:

sudo chown www-data /webdav

设置密码保护


我们可以通过创建 htpasswd 文件来创建用于访问目录内容的身份验证过程。

我们将把它放在内容目录之外,这样我们系统的用户就无法访问它。 在命令调用中创建用户名,系统将提示您输入相关密码:

sudo htpasswd -c /etc/apache2/webdav.password用户名

现在,任何人都可以查看文件中的用户名和哈希密码。 我们将文件的组所有权分配给 www-data,然后锁定其他所有人的权限:

sudo chown root:www-data /etc/apache2/webdav.password
sudo chmod 640 /etc/apache2/webdav.password

配置阿帕奇


现在,我们必须配置对内容目录的访问,并告诉 Apache 使用 WebDAV 模块来服务该位置。 我们还必须注意我们创建的身份验证方案。

使用 root 权限编辑主虚拟主机配置:

sudo nano /etc/apache2/sites-available/default

在这里,我们的 Web 内容像往常一样由 /var/www 提供。 我们将添加一些信息,允许 Apache 将我们新目录中的内容视为 WebDAV 材料。

在目录列表下方,我们将添加一个别名指令,告诉 Apache 对“/webdav”的请求应该从我们创建的 /webdav 目录中提供。

然后,我们将添加选项以允许使用我们建立的方法进行身份验证。

. . . . . . 选项索引 FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all
别名 /webdav /webdav
选项索引DAV On AuthType Basic AuthName “webdav” AuthUserFile /etc/apache2/webdav.password需要有效用户 . . . . . .

保存并关闭文件。

使用以下命令重新启动 Apache:

sudo service apache2 restart

测试结果


您可以先在 Web 浏览器中测试配置结果,然后在 WebDAV 客户端中测试。

网络浏览器测试


要测试您的身份验证是否正常工作,请使用 Web 浏览器导航到服务器的 IP 地址或域名。

您应该会看到默认的 Apache index.html 文件:

[[File:“%3Ca]] https://assets.digitalocean.com/articles/webdav/default_apache.png ” alt =“Apache 默认索引” />

这表明常规 Web 功能正在运行。

现在,导航到您的 IP 地址或域名,后跟“/webdav”:

your_IP_address_or_domain /webdav

系统会提示您输入之前设置的用户名和密码组合。 之后,您应该会看到一个空目录列表:

[[File:“%3Ca]] https://assets.digitalocean.com/articles/webdav/empty_webdav.png ” alt =“空 WebDAV” />

我们目前在这里没有任何内容,但我们可以通过使用 WebDAV 客户端访问同一区域来更改它。

WebDEV客户端测试


有许多 WebDAV 客户端,并且对 WebDAV 访问的支持已融入许多流行的文件管理器中。

为简单起见,我们将在本指南中使用名为“cadaver”的简单命令行 WebDAV 客户端。

最好从另一台 Droplet 或 Linux 机器上,从默认存储库安装 cadaver:

sudo apt-get install cadaver

现在,让我们创建一个文件,我们将上传到 WebDAV 目录:

cd ~
touch testfile

接下来,我们将使用从浏览器访问的相同位置进行连接:

尸体 http:// your_IP_address_or_domain /webdav
 服务器“162.243.2.14”上的 webdav 需要身份验证:用户名:

您必须输入“http://”部分,尸体才能正确找到您的服务器。 我们将需要再次进行身份验证,然后我们将进入命令行界面。

dav:/webdav/>

从这里,我们可以使用类似于常规 Linux 命令的命令同时操作客户端和主机。

要列出服务器目录的内容,请键入:

ls

Listing collection `/webdav/': collection is empty.

目录是空的。 让我们改变上传我们的测试文件:

put testfile

我们可以再次尝试 list 命令并查看文件现在在服务器上:

ls

Listing collection `/webdav/': succeeded.
        testfile                               0  Sep 20 19:36

我们可以创建一个目录并通过键入以下内容进行更改:

mkdir hello
cd hello

然后我们可以通过键入以下内容来创建文件:

edit file.html

我们可以插入任何我们想要的内容:

<h1>Hi!!!</h1>

完成后,我们可以键入 exit 关闭连接:

exit

现在,如果我们回到我们的网络浏览器,我们所做的更改是可见的:

your_IP_address_or_domain /webdav

[[File:“%3Ca]] https://assets.digitalocean.com/articles/webdav/webdav_content.png ” alt =“WebDAV 内容” />

关闭目录列表


尽管目录列表对于查看 WebDAV 可用的文件很有用,但它通常很有用,尤其是当您将其用于实际 Web 内容时,可以关闭该列表。

如果您希望 Web 可访问部分更像是网站而不是目录列表,请从配置文件中删除“ Options Indexes ”行:

sudo nano /etc/apache2/sites-available/default
别名 /webdav /webdav
 Options Indexes ## Remove this line DAV On AuthType Basic AuthName “webdav” AuthUserFile /etc/apache2/webdav.password Require valid-user  . . . . . .

重新启动 Apache 以使用您的更改:

sudo service apache2 restart

请记住,您需要创建常规网页才能使其正常运行,例如“index.html”文件:

sudo nano /webdav/index.html

<h1>Default WebDAV Page</h1>
<p>This is the default page with directory listings turned off</p>

保存并关闭文件。

现在,当我们导航到 WebDAV 主目录时,此页面将出现,但客户端仍将启用编辑功能。

[[File:“%3Ca]] https://assets.digitalocean.com/articles/webdav/webdav_landing.png ” alt =“WebDAV 登陆页面” />

结论


您现在应该有一个包含基本身份验证的 WebDAV 目录。 如果您的目录包含绝对必须保持安全的内容,您可能希望在密码身份验证之上实施 SSL 解决方案。 然而,这超出了本文的范围。

许多文件管理器和客户端可以无缝访问和修改 WebDAV 内容,就好像它是额外的本地存储一样。 WebDAV 允许比传统方式更动态的 HTTP 体验。

贾斯汀·艾林伍德