如何在 Ubuntu 14.04 上使用 Apache 配置 WebDAV 访问
介绍 WebDAV 是 HTTP 协议的扩展,允许用户管理服务器上的文件。有很多方法可以使用 WebDAV 服务器。例如,您可以通过将 Word 或 Excel 文档上传到您的 WebDAV 服务器来与您的同事共享它们。您甚至可以与家人和朋友分享您的音乐收藏,只需给他们一个 URL。所有这一切都可以在没有他们安装任何东西的情况下实现。 有很多方法可以管理远程服务器上的文件。与 FTP 或 Samb
介绍
WebDAV 是 HTTP 协议的扩展,允许用户管理服务器上的文件。有很多方法可以使用 WebDAV 服务器。例如,您可以通过将 Word 或 Excel 文档上传到您的 WebDAV 服务器来与您的同事共享它们。您甚至可以与家人和朋友分享您的音乐收藏,只需给他们一个 URL。所有这一切都可以在没有他们安装任何东西的情况下实现。
有很多方法可以管理远程服务器上的文件。与 FTP 或 Samba 等其他解决方案相比,WebDAV 有几个优点。在本文中,我们将介绍如何配置您的 Apache 服务器以允许通过身份验证从 Windows、Mac 和 Linux 访问本机 WebDAV。
为什么选择 WebDAV?
WebDAV 提供了几个优点:
-
所有主要操作系统(Windows、Mac、Linux)的原生集成;无需安装第三方软件即可使用 WebDAV。
-
支持部分传输。
-
更多的身份验证选择。使用 HTTP 意味着 NTLM、Kerberos、[LDAP](https ://en.wikipedia.org/wiki/NT_LAN_Manager)。://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol)等。都是可能的。
根据您的情况,WebDAV 可能是满足您需求的最佳解决方案。
为什么选择 Apache?
周围有许多 Web 服务器支持 Linux 上的 WebDAV。然而,Apache 拥有最兼容的 WebDAV 协议实现。在撰写本文时,Nginx 和 Lighttpd 上的 WebDAV 可以工作,但只是部分工作。
先决条件
你需要一个 Ubuntu 14.04 服务器。
在开始之前,让我们首先创建一个具有 sudo 访问权限的用户。您可以以 root 身份运行命令,但出于安全考虑,不鼓励这样做。有一篇关于[在 Ubuntu 14.04 上添加用户](https://www.digitalocean.com/community/tutorials/how-to-add-and-delete-users-on-an-ubuntu-14-04- vps)如果您想了解更多信息。
创建用户
当您第一次创建 Digital Ocean 实例时,您将获得允许您以 root 身份登录的凭据。作为 root,让我们首先添加一个名为 alex 的用户。
添加用户亚历克斯
系统将提示您为用户 alex 创建密码,如下所示。将进一步提示有关用户 alex 的信息。如果您愿意,可以输入它们。
添加用户“亚历克斯”...
添加新组 `alex' (1000) ...
使用组 `alex' 添加新用户 `alex' (1000) ...
创建主目录 `/home/alex' ...
从 `/etc/skel' 复制文件 ...
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:密码更新成功
更改 alex 的用户信息
输入新值,或按 ENTER 获得默认值
全名 []:
房间号 []:
工作电话 []:
家庭电话 []:
其他 []:
信息是否正确? [是/否] 是
授予用户 sudo 权限
创建新用户后,下一步是授予用户 alex sudo 权限。假设您仍然以 root 身份登录,通过键入以下命令将用户 alex 添加到 sudo 组。
usermod -aG 须藤亚历克斯
sudo 组中的用户被授予sudo 权限。现在您可以注销并以用户 alex 的身份登录。
第一步——安装 Apache
让我们安装 Apache。
sudo apt-get 更新
sudo apt-get 安装 apache2
Apache Web 服务器应该已安装并正在运行。
第二步 — 设置 WebDAV
设置 WebDAV 分为三个步骤。我们指定一个位置,启用必要的模块并对其进行配置。
准备目录
我们需要指定一个文件夹来服务 WebDAV。我们将为此创建新目录/var/www/webdav
。您还需要将所有者更改为“www-data”(您的 Apache 用户),以允许 Apache 对其进行写入。
须藤 mkdir /var/www/webdav
sudo chown -R www-data:www-data /var/www/
启用模块
接下来我们使用 a2enmod 启用 WebDAV 模块
须藤a2enmod dav
须藤a2enmod dav_fs
Apache 模块位于/etc/apache2/mods-available
下。这会创建一个从 /etc/apache2/mods-available
到 /etc/apache2/mods-enabled
的符号链接。
配置
使用您喜欢的文本编辑器在 /etc/apache2/sites-available/000-default.conf
打开或创建配置文件。
纳米 /etc/apache2/sites-available/000-default.conf
在第一行,添加 DavLockDB 指令配置:
DavLockDB /var/www/DavLock
VirtualHost 部分中的 Alias 和 Directory 指令:
别名 /webdav /var/www/webdav
<目录 /var/www/webdav>
DAV 开启
</目录>
编辑后文件应如下所示。
DavLockDB /var/www/DavLock
<虚拟主机 *:80>
# ServerName 指令设置请求方案、主机名和端口
# 服务器用来标识自己。这在创建时使用
# 重定向网址。在虚拟主机的上下文中,ServerName
# 指定主机名必须出现在请求的 Host: 标头中
# 匹配这个虚拟主机。对于默认虚拟主机(此文件),此
# 值不是决定性的,因为它无论如何都被用作最后的主机。
# 但是,您必须为任何进一步的虚拟主机显式设置它。
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# 可用的日志级别:trace8, ..., trace1, debug, info, notice, warn,
# 错误,暴击,警报,emerg。
# 也可以配置特定的日志级别
# 模块,例如
#LogLevel 信息 ssl:警告
错误日志 ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log 组合
# 对于来自 conf-available/ 的大多数配置文件,它们是
# 在全局级别启用或禁用,可以
# 仅包含一个特定虚拟主机的行。例如
# 以下行仅启用此主机的 CGI 配置
# 在它被“a2disconf”全局禁用之后。
#包括conf-available/serve-cgi-bin.conf
别名 /webdav /var/www/webdav
<目录 /var/www/webdav>
DAV 开启
</目录>
</虚拟主机>
# vim: 语法u003dapache tsu003d4 swu003d4 stsu003d4 sr noet
DavLockDB 指令指定 DAV 锁定数据库的名称。它应该是文件的路径。该文件不需要创建。该目录应该可由 Apache 服务器写入。
别名 指令将对 http://your.server/webdav
的请求映射到 /var/www/webdav
文件夹。
目录 指令告诉 Apache 为 /var/www/webdav
文件夹启用 WebDAV。您可以从 Apache 文档中找到有关 mod_dav 的更多信息。
如果您重新启动 Apache 服务器,您将拥有一个无需身份验证的工作 WebDAV 服务器。
像这样重新启动 Apache 服务器:
sudo 服务 apache2 重启
测试
没有身份验证的 WebDAV 只允许用户进行读取访问。为了测试,让我们创建一个示例文件。
echo "这是一个示例文本文件" | sudo tee -a /var/www/webdav/sample.txt
应该在 /var/www/webdav 中创建一个名为 sample.txt 的文本文件。它应该包含文本_这是一个示例文本文件_。
现在我们可以尝试从外部计算机登录。 WebDAV 服务器应位于 http://<your.server.com>/webdav。为简洁起见,我们仅展示如何在 Mac 上无凭据登录。
在 Mac 上,打开 Finder。在菜单栏上,找到 Go 并选择选项 Connect to Server。
选择以访客身份连接选项。然后,单击连接。
您应该已登录。如果您连接到该共享文件系统并进入 webdav
文件夹,您应该能够看到之前创建的文件 sample.txt
。该文件应该是可下载的。
第三步 - 添加身份验证
没有身份验证的 WebDAV 服务器是不安全的。在本节中,我们将使用 Digest 身份验证方案向您的 WebDAV 服务器添加身份验证。
基本或摘要式身份验证?
有许多可用的身份验证方案。此表说明了不同操作系统上各种身份验证方案的兼容性。请注意,如果您使用 HTTPS,我们假设您的 SSL 证书是有效的(不是自签名的)。
如果您使用 HTTP,请使用 摘要式身份验证,因为它适用于所有操作系统。如果您使用 HTTPS,您可以选择使用 基本身份验证。
我们将介绍 Digest 身份验证方案,因为它适用于所有操作系统,无需 SSL 证书。
摘要式身份验证
让我们生成存储用户密码的文件(称为“users.password”)。在摘要式身份验证中,有 realm 字段充当用户的命名空间。我们将使用 webdav 作为我们的 realm。我们的第一个用户将被称为 alex。
要生成摘要文件,我们必须安装依赖项。
sudo apt-get install apache2-utils
接下来我们将添加用户。让我们使用以下命令生成用户密码文件。
sudo htdigest -c /etc/apache2/users.password webdav alex
这会将用户 alex 添加到密码文件中。应该有一个密码提示来为 alex 创建密码。
对于后续添加的用户,您应该删除 c 标志。这是另一个添加名为 chris 的用户的示例。出现提示时创建密码。
sudo htdigest /etc/apache2/users.password webdav chris
我们还需要允许 Apache 读取密码文件,所以我们更改了所有者。
sudo chown www-data:www-data /etc/apache2/users.password
创建密码文件后,我们应该更改 /etc/apache2/sites-available/000-default.conf
中的配置。
将以下行添加到 Directory 指令
AuthType 摘要
身份验证名称“webdav”
AuthUserFile /etc/apache2/users.password
需要有效用户
最终版本应如下所示(已删除评论)。
DavLockDB /var/www/DavLock
<虚拟主机 *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
错误日志 ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log 组合
别名 /webdav /var/www/webdav
<目录 /var/www/webdav>
DAV 开启
AuthType 摘要
身份验证名称“webdav”
AuthUserFile /etc/apache2/users.password
需要有效用户
</目录>
</虚拟主机>
mod_authn 模块包含身份验证指令的定义。
AuthType 指令指示 Apache 对于 /var/www/webdav
目录,应该使用 Digest 方案进行身份验证。
Digest 身份验证需要 realm 的值,我们将其设置为 webdav。 Realm 就像一个命名空间。当您有同名的用户时,您可以使用 realm 的不同值来分隔它们。我们使用 AuthName 指令来设置 realm 的值。
AuthUserFile 指令用于指示密码文件的位置。
Require 指令指出只有经过身份验证的有效用户才能访问此目录。
最后,启用摘要模块并重新启动服务器以使设置生效。
sudo a2enmod auth_digest
sudo 服务 apache2 重启
第四步 - 访问文件
我们将演示如何从 Mac、Windows 和 Linux (Ubuntu) 的本机文件浏览器访问您的 WebDAV 服务器。为简洁起见,我们将仅在 Mac 上演示文件和文件夹操作,尽管您可以从所有操作系统添加、编辑和删除服务器上的文件。
您还可以使用 Web 浏览器通过 Internet 访问文件。
如果您在我们添加身份验证之前进行了测试,您可能需要弹出驱动器并重新连接到它。
苹果电脑
在 Mac 上,打开 Finder。在菜单栏上,找到 Go 并选择选项 Connect to Server。
输入服务器地址。它应该是 http://<your.server>/webdav。按连接。
系统将提示您输入用户名和密码。输入我们在服务器上创建的用户之一,然后按 Connect。
连接后,目录应出现在 Finder 中。
您可以将文件复制并保存到 webdav
目录,并创建子目录。这是服务器上目录的初始状态:
您可以使用 Finder 像往常一样添加或重命名文件并创建新目录。下面是最终结果。
窗户
在 Windows 上,打开 文件资源管理器。在左侧边栏中,您应该会找到 Network 图标。
右键单击 Network 图标。它应该显示带有选项映射网络驱动器的上下文菜单。点击那个。
在文件夹字段中输入服务器地址。它应该是 http://<your.server>/webdav。如果您的登录名不同,请选择 Connect using different credentials。按完成。
系统将提示您输入用户名和密码。输入它们并按 OK。
连接后,它应显示为文件资源管理器左侧边栏中的网络驱动器。
Linux(免费)
我们使用 Ubuntu 14.04 作为我们的 Linux 桌面操作系统。在 Ubuntu 上,打开 Files。左侧边栏有一个连接到服务器选项。点击那个。
输入服务器地址。它应该是 dav://<your.server>/webdav。按连接。
系统将提示您输入用户名和密码。输入它们并按连接。
连接后,目录应出现在 Network 列表下。
结论
在本文中,我们介绍了如何在 Ubuntu 14.04 上使用 Apache 设置 WebDAV 服务器。我们还讨论了如何配置摘要式身份验证以保护服务器。最后,我们向您展示了如何使用它们的本地文件浏览器从所有三个主要操作系统连接到 WebDAV 服务器。
更多推荐
所有评论(0)