_ 作者选择了 免费和开源基金作为 写给捐款计划的一部分接受捐款。
介绍
[WebDAV] (http://www.webdav.org/)是HTTP协议的扩展,允许用户管理远程服务器上的文件. 使用WebDAV服务器有许多方法,例如,您可以通过上传到您的WebDAV服务器来与同事共享Word或Excel文档. 您也可以通过简单地给家人和朋友一个URL来分享您的音乐收藏. 所有这一切都可以实现,没有他们安装任何额外的软件,因为一切都被建在他们的操作系统中.
在本文中,您将配置 Apache 网页服务器以允许 WebDAV 从 Windows、Mac 和 Linux 访问 SSL 和密码身份验证。
前提条件
在您开始本指南之前,您将需要以下内容:
- Ubuntu 20.04服务器。 追随 [Initial Server setup with Ubuntu 20.04] (https://andsky.com/tech/tutorials/initial-server-setup-with-ubuntu-20-04) 创建 sudo 启用,非root 用户.
- 一个解决您服务器公共IP地址的域名. [域和DNS] (https://www.digitalocean.com/docs/networking/dns/)解释如何设置.
- Apache 网络服务器配置以服务您的域名, 您可以在 Ubuntu 20. 04 上完成 [如何安装 Apache 网络服务器] (https://andsky.com/tech/tutorials/how-to-install-the-apache-web-server-on-ubuntu-20-04 ) 设置此功能的教程 —— 确保遵循 ** 第 5 段 — 设置虚拟主机 作为此先决条件的一部分 。
- 您域名的 SSL 证书 。 遵循)指导如何做到这一点。 .
WebDAV 需要很少的服务器资源,所以任何大小的虚拟机都足以让 WebDAV 服务器运行。
登录您的服务器作为 sudo 启用,非 root 用户开始第一步。
步骤 1 — 启用 WebDAV Apache 模块
Apache Web 服务器提供许多功能,作为可选模块。您可以启用和禁用这些模块,从 Apache 添加和删除其功能。其 WebDAV 功能包含在您与 Apache 一起安装的模块中,但默认情况下不启用。您可以使用 a2enmod实用程序启用 WebDAV 模块。下列两个命令将启用 WebDAV 模块:
1sudo a2enmod dav
2sudo a2enmod dav_fs
现在,重新启动Apache来加载新模块:
1sudo systemctl restart apache2.service
WebDAV 模块现在已加载并运行,在下一步,您将配置 Apache 以通过 WebDAV 服务您的文件。
第2步:配置Apache
在此步骤中,您将创建 Apache 实现 WebDAV 服务器所需的所有配置。
首先,创建在/var/www/webdav
的 WebDAV 根文件夹,该文件将包含您希望通过 WebDAV 提供的文件:
1sudo mkdir /var/www/webdav
然后,将Apache的用户www-data
设置为WebDAV目录的所有者:
1sudo chown www-data:www-data /var/www/webdav
接下来,您需要为 Apache 使用的数据库文件创建一个位置,以管理和锁定 WebDAV 用户访问的文件。
在 /usr/local/apache/var/
的数据库文件中使用 mkdir
工具创建一个新的目录:
1sudo mkdir -p /usr/local/apache/var/
-p
选项告诉mkdir
实用程序在您指定的路径中创建所有目录,如果它们不存在。
接下来,将新目录的所有者和组设置为Apache的用户和组,使用chown
实用程序:
1sudo chown www-data:www-data /usr/local/apache/var
现在,你需要编辑的 VirtualHost文件,其中包含了关于您的域名的Apache配置. 此文件位于 /etc/apache2/sites-enabled/
和结束在 le-ssl.conf
如果您使用Certbot注册SSL证书。
使用文本编辑器打开 VirtualHost 文件:
1sudo nano /etc/apache2/sites-enabled/your_domain-le-ssl.conf
在第一行中,添加DavLockDB
指令:
1[label /etc/apache2/sites-enabled/your_domain-le-ssl.conf]
2DavLockDB /usr/local/apache/var/DavLock
3. . .
接下来,在VirtualHost
标签中添加以下Alias
和Directory
指令,遵循所有其他指令:
1[label /etc/apache2/sites-enabled/your_domain-le-ssl.conf]
2. . .
3Alias /webdav /var/www/webdav
4
5<Directory /var/www/webdav>
6 DAV On
7</Directory>
Alias
指令地图请求到 http://your.server/webdav
到 /var/www/webdav
文件夹。
該指令(https://httpd.apache.org/docs/current/mod/core.html# directory)告訴 Apache 啟用 WebDAV for the /var/www/webdav
文件夹. 您可以從 Apache 文件夹中了解更多關於 mod_dav
。
您的最终 VirtualHost 文件将如下,其中包括正确位置的DavLockDB
,Alias
和目录
指令:
1[label /etc/apache2/sites-enabled/your_domain-le-ssl.conf]
2DavLockDB /usr/local/apache/var/DavLock
3<IfModule mod_ssl.c>
4<VirtualHost *:443>
5 ServerAdmin admin@your_domain
6 ServerName your_domain
7 ServerAlias your_domain
8 DocumentRoot /var/www/your_domain
9 ErrorLog ${APACHE_LOG_DIR}/error.log
10 CustomLog ${APACHE_LOG_DIR}/access.log combined
11
12 SSLCertificateFile /etc/letsencrypt/live/your_domain/fullchain.pem
13 SSLCertificateKeyFile /etc/letsencrypt/live/your_domain/privkey.pem
14 Include /etc/letsencrypt/options-ssl-apache.conf
15
16 Alias /webdav /var/www/webdav
17
18 <Directory /var/www/webdav>
19 DAV On
20 </Directory>
21
22</VirtualHost>
23</IfModule>
如果您在编辑 Apache 配置时出现任何语法错误,它将拒绝启动,因此在重新启动 Apache 之前,最好检查您的 Apache 配置。
使用apachectl
实用程序来检查配置:
1sudo apachectl configtest
如果您的配置没有错误,apachectl 将打印Syntax OK
。当您收到此信息时,您可以安全地重新启动 Apache 来加载新配置:
1sudo systemctl restart apache2.service
您现在已将 Apache 配置为 WebDAV 服务器,以便从 /var/www/webdav
服务文件. 但是,您尚未配置或启用身份验证,因此任何可以访问您的服务器的人都可以阅读、写入和编辑您的文件。
步骤 3 — 将身份验证添加到 WebDAV
您将使用的身份验证方法叫做 digest authentication。
Digest 身份验证与存储允许访问 WebDAV 服务器的用户名和密码的文件一起工作. 与DavLockDB
一样, digest 文件需要存储在 Apache 可以阅读和写入的位置,并且无法从您的网站中提供服务。
既然您已经为此而创建了 /usr/local/apache/var/
,那么您也会将 digest 文件放在那里。
首先,使用触摸
实用程序创建一个名为users.password
的空格文件在/usr/local/apache/var/
:
1sudo touch /usr/local/apache/var/users.password
然后将所有者和组更改为www-data
,以便Apache可以阅读和写入它:
1sudo chown www-data:www-data /usr/local/apache/var/users.password
使用htdigest
实用程序将新用户添加到 WebDAV. 以下命令会添加用户 sammy :
1sudo htdigest /usr/local/apache/var/users.password webdav sammy
这个命令中的webdav
是 realm,应该被认为是您正在添加新用户的组,也是用户在访问 WebDAV 服务器时输入用户名和密码时显示的文本。
htdigest
将提示您输入密码并在运行时确认它:
1[secondary_label Output]
2Adding user sammy in realm webdav
3New password:
4Re-type new password:
接下来,你会告诉Apache对WebDAV访问需要身份验证,并使用users.password
文件。
打开您的 VirtualHost 文件:
1sudo nano /etc/apache2/sites-enabled/your_domain-le-ssl.conf
然后,在目录
指令块中添加以下行:
1[label /etc/apache2/sites-enabled/your_domain-le-ssl.conf]
2AuthType Digest
3AuthName "webdav"
4AuthUserFile /usr/local/apache/var/users.password
5Require valid-user
这些指令如下:
AuthType Digest
: 使用 digest 身份验证方法. *AuthName "webdav"
: 仅允许来自webdav
领域的用户. *AuthUserFile /usr/local/apache/var/users.password
: 使用/usr/local/apache/var/users.password
中包含的用户名和密码. *Requires valid-user
: 允许在users.password
文件中列出的任何用户获取正确密码。
您的Directory
指令将如下:
1[label /etc/apache2/sites-enabled/your_domain-le-ssl.conf]
2<Directory /var/www/webdav>
3 DAV On
4 AuthType Digest
5 AuthName "webdav"
6 AuthUserFile /usr/local/apache/var/users.password
7 Require valid-user
8</Directory>
接下来,启用auth_digest
Apache 模块,以便 Apache 知道如何使用 digest 身份验证方法:
1sudo a2enmod auth_digest
最后,重新启动 Apache 以加载所有新配置:
1sudo systemctl restart apache2.service
您现在已经配置了 WebDAV 服务器以使用 HTTPS 和扫描身份验证. 它已经准备好开始向用户提供文件。 在下一节中,您将从 Windows、Linux 或 macOS 访问 WebDAV 服务器。
第4步:访问WebDAV
在此步骤中,您将使用 macOS、Windows 和 Linux (KDE 和 GNOME) 的原始文件浏览器访问 WebDAV 服务器。
在您开始访问 WebDAV 服务器之前,您应该将文件放入 WebDAV 文件夹中,以便您有文件进行测试。
使用文本编辑器打开新文件:
1sudo nano /var/www/webdav/webdav-testfile.txt
现在,将这个文件的所有者和组设置为www-data
:
1sudo chown www-data:www-data /var/www/webdav/webdav-testfile.txt
您现在已经准备好开始访问和测试您的 WebDAV 服务器。
名称:Linux KDE
首先,打开 KDE Dolphin 文件管理器,然后用以下形式的 URL 编辑地址栏:
1webdavs://your_domain/webdav
当您点击进入
时,您将被要求输入用户名和密码。
如果您希望 Dolphin 保留您的密码,请检查 记住密码 选项,然后点击** OK** 继续,现在它将向您展示 /var/www/webdav/
目录的内容,您可以操纵它们,就像它们在您的本地系统上一样。
通过抓住地址栏中的文件夹图标并将其拖到左侧导航面板的远程**
部分。
名称: Linux GNOME
首先,通过点击桌面右侧的图标打开 文件 应用程序。
当文件
打开时,请执行以下操作:
- 点击 + 其他位置 . 2 使用以下表格输入 WebDAV 实例的 URL:
1davs://your_domain/webdav
然后,点击 连接 . 然后它会提示您使用户名和密码对话框。
输入您的用户名和密码,然后单击 连接 登录您的 WebDAV 服务器. 检查** 永远记住** 选项,如果您不希望每次访问文件时输入您的密码。
您的 WebDAV 文件夹现在可在 文件 中使用,您可以管理您的文件:
macOS
首先,打开Finder
应用程序,然后单击Go
菜单,然后单击连接到服务器
。
现在你会看到一个新的对话框,在那里你输入 WebDAV 服务器的 URL。
1https://your_domain/webdav
点击连接
按钮继续,它会提示您输入用户名和密码。
点击连接
以完成将 WebDAV 服务器添加到您的系统。
您现在可以在 Finder 中找到您的 WebDAV 服务器,在 ** 位置** 部分。
窗口
首先,从开始
菜单中打开文件浏览器
应用程序。当打开时,从左侧导航面板中选择此PC
。
接下来,点击上面的导航栏中的 Map 网络驱动器 图标。
输入您的 WebDAV 服务器的 URL 以如下形式的 URL:
1https://your_domain/webdav
点击 完成 连接到您的 WebDAV 服务器. 它会提示您输入用户名和密码。
输入您的用户名和密码,然后点击OK来登录您的服务器. 检查记住我的身份证
选项,如果您不希望每次访问文件时输入您的密码。
您的 WebDAV 现在将出现在 File Explorer 左侧导航面板的 This PC 部分中的位置。
结论
您现在已经设置并配置了安全的 WebDAV 服务器,以便为您的用户服务您的文件. 无论您的用户在本地系统上的操作系统是什么,他们将能够访问和管理您的 WebDAV 服务器中的文件。