作者选择了免费和开源基金作为Write for DOnations的一部分接受捐赠w4do-cta) 程序.

介绍

WebDAV 是 HTTP 协议的扩展,允许用户管理远程服务器上的文件。使用 WebDAV 服务器的方法有很多,例如,您可以通过将 Word 或 Excel 文档上传到您的 WebDAV 服务器来与您的同事共享它们。您还可以与家人和朋友分享您的音乐收藏,只需给他们一个 URL。所有这一切都可以在他们不安装任何额外软件的情况下实现,因为一切都内置在他们的操作系统中。

在本文中,您将配置一个 Apache Web 服务器,以通过 SSL 和密码身份验证从 Windows、Mac 和 Linux 启用 WebDAV 访问。

先决条件

在开始本指南之前,您将需要以下内容:

  • 一个 Ubuntu 18.04 服务器。按照 使用 Ubuntu 18.04 进行初始服务器设置 创建启用 sudo 的非 root 用户。

  • 解析为您服务器的公共 IP 地址的域名。 域和 DNS 说明了如何设置。

  • 一个 Apache 网络服务器。遵循如何在 Ubuntu 18.04 上设置 Apache 虚拟主机 指南,了解如何使用您的域名配置 Apache。

  • 您的域名的 SSL 证书。遵循[如何在 Ubuntu 18.04 上使用 Let's Encrypt 保护 Apache](https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-18 -04) 指南以获取有关如何执行此操作的说明。

WebDAV 需要很少的服务器资源,因此任何大小的虚拟机都足以让您的 WebDAV 服务器启动并运行。

以启用 sudo 的非 root 用户身份登录到您的服务器以开始第一步。

第 1 步 — 启用 WebDAV Apache 模块

Apache Web 服务器作为可选模块提供了很多功能。您可以启用和禁用这些模块以在 Apache 中添加和删除它们的功能。它的 WebDAV 功能包含在与 Apache 一起安装的模块中,但默认情况下未启用。

您可以使用 a2enmod 实用程序为 Apache 启用 WebDAV 模块。以下两个命令将启用 WebDAV 模块:

须藤a2enmod dav
须藤a2enmod dav_fs

现在,重新启动 Apache 以加载新模块:

sudo systemctl restart apache2.service

您现在已经加载并启动了 WebDAV 模块。在下一步中,您将配置 Apache 以通过 WebDAV 提供文件。

步骤 2 — 配置 Apache

在此步骤中,您将创建 Apache 实现 WebDAV 服务器所需的所有配置。

首先,在 /var/www/webdav 创建 WebDAV 根文件夹,该文件夹将保存您希望通过 WebDAV 提供的文件:

须藤 mkdir /var/www/webdav

然后,将 Apache 的用户 www-data 设置为 WebDAV 目录的所有者:

sudo chown www-data:www-data /var/www/webdav

接下来,您需要为 Apache 用来管理和锁定 WebDAV 用户正在访问的文件的数据库文件创建一个位置。该文件需要 Apache 可读和可写,但不能从网站获得,因为这可能会泄露敏感信息。

使用 mkdir 实用程序为 /usr/local/apache/var/ 中的数据库文件创建一个新目录:

sudo mkdir -p /usr/local/apache/var/

-p 选项告诉 mkdir 实用程序在您指定的路径中创建所有目录(如果它们不存在)。

接下来,使用 chown 实用程序将新目录的所有者和组设置为 Apache 的用户和组:

sudo chown www-data:www-data /usr/local/apache/var

现在,您需要编辑包含有关您的域名的 Apache 配置的 VirtualHost 文件。如果您使用 Certbot 注册 SSL 证书,此文件位于 /etc/apache2/sites-enabled/ 并以 le-ssl.conf 结尾。

使用文本编辑器打开 VirtualHost 文件:

Sudonano / 等 / Apache 2 / Shite enabed / Yo r_Domain sl。 conf

在第一行,添加 DavLockDB 指令:

/etc/apache2/sites-enabled/your_domain-le-ssl.conf

DavLockDB /usr/local/apache/var/DavLock
. . .

接下来,在所有其他指令之后的 <VirtualHost> 标签内添加以下 AliasDirectory 指令:

/etc/apache2/sites-enabled/your_domain-le-ssl.conf

. . .
别名 /webdav /var/www/webdav

<目录 /var/www/webdav>
DAV 开启
</目录>

Alias 指令将对 http://your.server/webdav 的请求映射到 /var/www/ webdav文件夹。

Directory 指令告诉 Apache 为 /var/www/webdav 文件夹启用 WebDAV。您可以从 Apache 文档中找到有关 mod_dav 的更多信息。

您的最终 VirtualHost 文件将如下所示,其中包括正确位置的 DavLockDBAliasDirectory 指令:

/etc/apache2/sites-enabled/your_domain-le-ssl.conf

DavLockDB /usr/local/apache/var/DavLock
<IfModule mod_ssl.c>
<虚拟主机 *:443>
ServerAdmin admin@your_domain
服务器名称 your_domain
服务器别名 your_domain
DocumentRoot /var/www/your_domain/public_html
错误日志 ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log 组合

SSLCertificateFile /etc/letsencrypt/live/your_domain/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/your_domain/privkey.pem
包括 /etc/letsencrypt/options-ssl-apache.conf

别名 /webdav /var/www/webdav

<目录 /var/www/webdav>
DAV 开启
</目录>

</虚拟主机>
</IfModule>

如果您在编辑 Apache 的配置时出现任何语法错误,它将拒绝启动。在重新启动 Apache 之前检查您的 Apache 配置是一个很好的做法。

使用 apachectl 实用程序检查配置:

须藤 apachectl 配置测试

如果您的配置没有错误,apachectl 将打印 Syntax OK。收到此信息后,可以安全地重新启动 Apache 以加载新配置:

sudo systemctl restart apache2.service

您现在已将 Apache 配置为 WebDAV 服务器以提供来自 /var/www/webdav 的文件。但是,您尚未配置或启用身份验证,因此任何可以访问您的服务器的人都可以读取、写入和编辑您的文件。在下一部分中,您将启用和配置 WebDAV 身份验证。

第 3 步 — 向 WebDAV 添加身份验证

您将使用的身份验证方法称为 摘要式身份验证。摘要式身份验证是更安全的 WebDAV 身份验证方法,尤其是与 HTTPS 结合使用时。

摘要式身份验证使用一个文件,该文件存储允许访问 WebDAV 服务器的用户的用户名和密码。就像 DavLockDB 一样,摘要文件需要存储在 Apache 可以读取和写入的位置,并且无法从您的网站提供。

因为您已经为此目的创建了/usr/local/apache/var/,所以您也将把摘要文件放在那里。

首先,使用 touch 实用程序在 /usr/local/apache/var/ 创建一个名为 users.password 的空文件:

sudo touch /usr/local/apache/var/users.password

然后将所有者和组更改为 www-data,以便 Apache 可以对其进行读写:

sudo chown www-data:www-data /usr/local/apache/var/users.password

使用 htdigest 实用程序将新用户添加到 WebDAV。以下命令添加用户 sammy:

sudo htdigest /usr/local/apache/var/users.password webdav sammy

此命令中的 webdavrealm 并且应该被认为是您要添加新用户的组。它也是在用户访问您的 WebDAV 服务器时输入用户名和密码时向用户显示的文本。您可以选择最能描述您的用例的任何领域。

当您运行“htdigest”命令时,它会提示您输入密码并确认:

输出在领域 webdav 中添加用户 sammy
新密码:
重新输入新密码:

接下来,您将告诉 Apache 要求对 WebDAV 访问进行身份验证并使用“users.password”文件。

打开您的虚拟主机文件:

Sudonano / 等 / Apache 2 / Shite enabed / Yo r_Domain sl。 conf

然后,在 Directory 指令块中添加以下行:

/etc/apache2/sites-enabled/your_domain-le-ssl.conf

AuthType 摘要
身份验证名称“webdav”
AuthUserFile /usr/local/apache/var/users.password
需要有效用户

这些指令执行以下操作:

  • AuthType Digest:使用摘要认证方式。

  • AuthName "webdav": 只允许来自 webdav 领域的用户。

  • AuthUserFile /usr/local/apache/var/users.password:使用包含在/usr/local/apache/var/users.password中的用户名和密码。

  • Require valid-user:允许访问 users.password 文件中提供正确密码的任何用户。

您的 <Directory> 指令将如下所示:

/etc/apache2/sites-enabled/your_domain-le-ssl.conf

<目录 /var/www/webdav>
DAV 开启
AuthType 摘要
身份验证名称“webdav”
AuthUserFile /usr/local/apache/var/users.password
需要有效用户
</目录>

接下来,启用 auth_digest Apache 模块,以便 Apache 知道如何使用摘要身份验证方法:

sudo a2enmod auth_digest

最后,重新启动 Apache 以加载所有新配置:

sudo systemctl restart apache2.service

您现在已将 WebDAV 服务器配置为使用 HTTPS 和摘要式身份验证。它已准备好开始向您的用户提供文件。在下一部分中,您将从 Windows、Linux 或 macOS 访问 WebDAV 服务器。

第 4 步 — 访问 WebDAV

在此步骤中,您将使用 macOS、Windows 和 Linux(KDE 和 GNOME)的本机文件浏览器访问 WebDAV 服务器。

在您开始访问您的 WebDAV 服务器之前,您应该将一个文件放入 WebDAV 文件夹中,这样您就有一个要测试的文件。

使用文本编辑器打开一个新文件:

Sudonano / ゔa r / w w w / web v / web v - st phie。文本

添加一些文本,然后保存并退出。现在,将此文件的所有者和组设置为 www-data:

sudo chown www-data:www-data /var/www/webdav/webdav-testfile.txt

您现在可以开始访问和测试您的 WebDAV 服务器了。

Linux KDE

首先,打开KDE Dolphin文件管理器。然后使用具有以下形式的 URL 编辑地址栏:

webdavs://your_domain/webdav

Dolphin地址栏显示WebDAV链接的图片

当您点击 ENTER 时,系统将提示您输入用户名和密码。

显示用户名和密码对话框的图片

如果您希望 Dolphin 保留您的密码,请选中 Remember password 选项。然后点击 OK 继续。它现在将向您显示 /var/www/webdav/ 目录的内容,您可以像在本地系统上一样对其进行操作。

通过抓取地址栏中的文件夹图标并将其拖动到左侧导航面板的 Remote 部分下,为您的 WebDAV 服务器添加书签。

显示 Dolphin 远程位置的 WebDAV 服务器的图像

Linux GNOME

首先,通过单击桌面右侧的图标打开 Files 应用程序。

显示Finder图标的图片

Files 打开时,请执行以下操作:

  1. 点击**+ 其他位置**。

  2. 使用以下格式输入您的 WebDAV 实例的 URL:

davs://your_domain/webdav

显示文件应用程序的图像

然后,点击连接。然后它将提示您使用用户名和密码对话框。

显示用户名和密码对话框的图片

输入您的用户名和密码,然后单击 Connect 以登录到您的 WebDAV 服务器。如果您不想在每次访问文件时都输入密码,请选中 Remember forever 选项。

您的 WebDAV 文件夹现在将在 Files 中可用,您可以在其中管理文件:

显示文件应用程序中的 WebDAV 服务器的图像

苹果系统

首先,打开 Finder 应用程序。接下来,单击 Go 菜单,然后单击 Connect to server

显示 Finder 应用程序中的 Go 菜单的图像

您现在将找到一个新对话框,您可以在其中输入 WebDAV 服务器的 URL。此 URL 必须具有以下格式:

https://translate.google.com/translate?hl=en&sl=auto&tl=zh&u=https://your_domain/webdav

显示URL输入对话框的图片

单击连接按钮继续。它将提示您输入用户名和密码。

显示用户名和密码对话框的图片

单击 Connect 以完成将 WebDAV 服务器添加到系统中。

您现在将在 Locations 部分下的 Finder 中找到您的 WebDAV 服务器。

在Finder中显示WebDAV共享的图片

窗户

首先,从开始菜单中,打开 File Explorer 应用程序。当它打开时,从左侧导航面板中选择 This PC

在导航面板中显示此电脑的图片

接下来,单击顶部导航栏中的 Map network drive 图标。

在顶部导航面板中显示地图网络驱动器图标的图像

使用以下形式的 URL 输入 WebDAV 服务器的 URL:

https://translate.google.com/translate?hl=en&sl=auto&tl=zh&u=https://your_domain/webdav

显示 URL 输入对话框的图片

单击 Finish 以连接到您的 WebDAV 服务器。它将提示您输入用户名和密码。

显示用户名和密码输入对话框的图片

输入您的用户名和密码,然后单击确定以登录到您的服务器。如果您不想在每次访问文件时都输入密码,请选中 Remember my credentials 选项。

您的 WebDAV 现在将显示为文件资源管理器左侧导航面板的 This PC 部分下的位置。

文件资源管理器中显示WebDAV共享的图片

结论

您现在已经设置并配置了一个安全的 WebDAV 服务器来为您的用户提供您的文件。无论您的用户在其本地系统上使用什么操作系统,他们都将能够访问和管理 WebDAV 服务器中的文件。

Logo

更多推荐