如何在 Ubuntu 12.04 上使用 Apache 配置 WebDAV 访问

简介: 如何在 Ubuntu 12.04 上使用 Apache 配置 WebDAV 访问

简介

WebDAV 是内置在 HTTP 中的分布式网络编辑实现,允许您轻松共享文件并与他人协作。

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

在 VPS 上安装 Apache


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

首先,您需要从 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 <span class="highlight">用户名</span>

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

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

配置 Apache


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

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

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

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

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

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

. . .
. . .
<Directory /var/www/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  allow from all
</Directory>
<span class="highlight">Alias /webdav /webdav</span>
<span class="highlight">&lt;Location /webdav&gt;</span>
  <span class="highlight">Options Indexes</span>
  <span class="highlight">DAV On</span>
  <span class="highlight">AuthType Basic</span>
  <span class="highlight">AuthName "webdav"</span>
  <span class="highlight">AuthUserFile /etc/apache2/webdav.password</span>
  <span class="highlight">Require valid-user</span>
<span class="highlight">&lt;/Location&gt;</span>
. . .
. . .

保存并关闭文件。

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

sudo service apache2 restart

测试结果


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

Web 浏览器测试


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

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

这证明了常规 Web 功能正在工作。

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

<span class="highlight">您的_IP地址或域名</span>/webdav

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

我们目前在这里没有任何内容,但我们将能够通过使用 WebDAV 客户端访问相同的区域来改变这一点。

WebDEV 客户端测试


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

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

最好是从另一个 droplet 或 Linux 机器上,从默认仓库安装 cadaver:

sudo apt-get install cadaver

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

cd ~
touch testfile

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

cadaver http://<span class="highlight">your_IP_address_or_domain</span>/webdav
服务器 `162.243.2.14` 上需要对 webdav 进行身份验证:
用户名:

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

dav:/webdav/>

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

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

ls

列出集合 `/webdav/`:集合为空。

该目录为空。让我们上传我们的测试文件来改变这种情况:

put testfile

我们可以再次尝试列表命令,看到文件现在在服务器上:

ls



列出集合 `/webdav/`:成功。 testfile 0 Sep 20 19:36

我们可以通过输入以下命令来创建一个目录并进入其中:

mkdir hello
cd hello

然后,我们可以通过输入以下命令来创建一个文件:

edit file.html

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

<h1>你好!!!</h1>

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

exit

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

<span class="highlight">your_IP_address_or_domain</span>/webdav

关闭目录列表


尽管目录列表对于查看 WebDAV 可用的文件非常有用,但通常情况下,特别是如果您将其用于实际的网络内容,关闭该列表会更有用。

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

sudo nano /etc/apache2/sites-available/default
Alias /webdav /webdav
<Location /webdav>
  <span class="highlight">Options Indexes     ## 删除此行</span>
  DAV On
  AuthType Basic
  AuthName "webdav"
  AuthUserFile /etc/apache2/webdav.password
  Require valid-user
</Location>
. . .
. . .

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

sudo service apache2 restart

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

sudo nano /webdav/index.html

<h1>默认的 WebDAV 页面</h1>
<p>这是默认页面,目录列表已关闭</p>

保存并关闭文件。

当我们导航到主要的 WebDAV 目录时,该页面现在会显示,但编辑功能仍然可以在客户端上启用。

结论


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

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


目录
相关文章
|
8天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
22 2
|
1月前
|
网络协议 Ubuntu 网络安全
|
1月前
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
72 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
1月前
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
39 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
1月前
|
缓存 前端开发 应用服务中间件
CORS跨域+Nginx配置、Apache配置
CORS跨域+Nginx配置、Apache配置
131 7
|
1月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
262 3
|
1月前
|
消息中间件 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
40 2
|
16天前
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
1月前
|
存储 消息中间件 druid
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
80 1
|
1月前
apache+tomcat配置多站点集群的方法
apache+tomcat配置多站点集群的方法
33 4