引言

是 ownCloud 的一个分支,是一个文件共享服务器,它允许你在一个集中的位置存储你的个人内容,比如文档和图片,就像 Dropbox 一样。 与 Nextcloud 的不同之处在于,它的所有特性都是开源的。 它还将敏感数据的控制和安全性返回给您,从而消除了第三方云托管服务的使用。

在本教程中,我们将在 Debian 9服务器上安装和配置 Nextcloud 实例。

先决条件

为了完成本指南中的步骤,你需要:

  • 服务器上配置的 sudo 用户和防火墙: 您可以通过遵循 Debian 9初始服务器设置指南创建具有 sudo 特权的用户并设置基本防火墙。
  • (可选)指向您服务器的域名: 我们将使用 tls / ssl 保护到 Nextcloud 安装的连接。 如果你的服务器有域名,Nextcloud 可以设置和管理来自 Let’s Encrypt 的免费、可信赖的 SSL 证书。 如果没有,Nextcloud 可以设置一个自签名的 SSL 证书,该证书可以加密连接,但在 web 浏览器中默认不受信任。 如果您正在使用 DigitalOcean,您可以按照我们的指导如何为您的服务器设置域名,如果您打算使用 Let’s Encrypt。

完成以上步骤后,继续学习如何在服务器上设置 Nextcloud。

第一步-安装 Nextcloud

我们将使用时髦的包装系统安装 Nextcloud。 这个打包系统可以通过缺省存储库在 Debian 9上安装,允许组织将软件以及所有相关的依赖关系和配置放在一个自包含的单元中,并自动更新。 这意味着我们不需要安装和配置 web 和数据库服务器,然后再配置 Nextcloud 应用程序在其上运行,而是可以安装自动处理底层系统的 snap 包。

要安装和管理管理单元包,首先需要在服务器上安装 snapd 包。 更新 apt 的本地包索引,然后输入以下命令安装软件:

  • sudo apt update
  • sudo apt install snapd

接下来,要么注销并重新登录,要么来源于 / etc / profile。 D / apps-bin-path. Sh 脚本添加 / snap / bin 到会话的 PATH 变量:

  • source /etc/profile.d/apps-bin-path.sh

一旦安装了 snapd,你可以下载 Nextcloud 管理单元包并安装到系统上,只需输入:

  • sudo snap install nextcloud

Nextcloud 包将被下载并安装在您的服务器上。 您可以通过列出与管理单元相关的更改来确认安装过程是否成功:

  • snap changes nextcloud
Output
ID Status Spawn Ready Summary 1 Done today at 20:18 UTC today at 20:18 UTC Install "nextcloud" snap

状态和摘要表明安装完成时没有任何问题。

获取关于 Nextcloud Snap 的更多信息

如果你想了解更多有关 Nextcloud 管理单元的信息,这里有一些命令可以帮助你。

管理单元信息命令可以显示描述,Nextcloud 管理命令,以及已安装的版本和正在跟踪的管理单元:

  • snap info nextcloud

Snaps 可以定义它们支持的接口,包括一个插槽和插头,当它们连接在一起时,提供了对特定功能或访问级别的快速访问。 例如,需要充当网络客户端的 snaps 必须具有网络接口。 要查看这个管理单元定义了什么管理单元“接口” ,输入:

  • snap interfaces nextcloud
Output
Slot Plug :network nextcloud :network-bind nextcloud - nextcloud:removable-media

要了解这个管理单元提供的所有特定服务和应用,你可以通过输入以下命令查看管理单元定义文件:

  • less /snap/nextcloud/current/meta/snap.yaml

如果需要调试帮助,这将允许您查看管理单元中包含的各个组件。

配置管理帐户

有几种不同的方法可以配置 Nextcloud 管理单元。 在本指南中,与其通过 web 界面创建一个管理用户,我们将在命令行上创建一个管理用户,以避免出现一个小窗口,任何访问您的服务器的 IP 地址或域名的人都可以访问管理员注册页面。

要使用新的管理员帐户配置 Nextcloud,请使用 Nextcloud.manual-install 命令。 您必须将用户名和密码作为参数传入:

  • sudo -i nextcloud.manual-install sammy password

以下信息表明 Nextcloud 配置正确:

Output
Nextcloud is not installed - only a limited number of commands are available Nextcloud was successfully installed

既然 Nextcloud 已经安装,我们需要调整可信域名,以便 Nextcloud 能够使用服务器的域名或 IP 地址响应请求。

调整可信域名

当从命令行安装时,Nextcloud 限制实例将响应的主机名。 默认情况下,服务只响应对“ localhost”主机名提出的请求。 我们将通过服务器的域名或 IP 地址访问 Nextcloud,因此我们需要调整此设置以接受这些类型的请求。

可以通过查询可信域数组的值来查看当前设置:

  • sudo -i nextcloud.occ config:system:get trusted_domains
Output
localhost

目前,只有 localhost 作为数组中的第一个值。 我们可以添加一个条目为我们的服务器的域名或 IP 地址输入:

  • sudo -i nextcloud.occ config:system:set trusted_domains 1 --value=example.com
Output
System config value trusted_domains => 1 set to string example.com

如果我们再次查询受信任域名,我们将看到现在有两个条目:

  • sudo -i nextcloud.occ config:system:get trusted_domains
Output
localhost example.com

如果您需要添加访问 Nextcloud 实例的其他方式,可以通过重新运行 config: system: set 命令并使用递增的索引号(第一个命令中的“1”)和调整 -- value 来添加其他域或地址。

使用 SSL 保护 Nextcloud Web 界面

在我们开始使用 Nextcloud 之前,我们需要确保网页界面的安全。

如果你有一个与 Nextcloud 服务器相关联的域名,Nextcloud 管理单元可以帮助你从 Let’s Encrypt 获得并配置一个可信赖的 SSL 证书。 如果你的 Nextcloud 服务器没有域名,Nextcloud 可以配置一个自签名证书,它会加密你的网络流量,但不能验证服务器的身份。

考虑到这一点,请遵循下面与您的场景相匹配的部分。

选项1: 使用 Let’s Encrypt 设置 SSL

如果你的 Nextcloud 服务器有一个域名,那么保护你的 web 界面的最佳选择就是获得 Let’ s Encrypt SSL 证书。

首先打开 Let’s Encrypt 用于验证域所有权的防火墙中的端口。 这将使你的 Nextcloud 登录页面公开可访问,但由于我们已经配置了管理员帐户,没有人能够劫持安装:

  • sudo ufw allow "WWW Full"

接下来,通过输入以下命令请求一个 Let’s Encrypt 证书:

  • sudo -i nextcloud.enable-https lets-encrypt

首先会询问您的服务器是否满足向 Let’s Encrypt 服务请求证书所需的条件:

Output
In order for Let's Encrypt to verify that you actually own the domain(s) for which you're requesting a certificate, there are a number of requirements of which you need to be aware: 1. In order to register with the Let's Encrypt ACME server, you must agree to the currently-in-effect Subscriber Agreement located here: https://letsencrypt.org/repository/ By continuing to use this tool you agree to these terms. Please cancel now if otherwise. 2. You must have the domain name(s) for which you want certificates pointing at the external IP address of this machine. 3. Both ports 80 and 443 on the external IP address of this machine must point to this machine (e.g. port forwarding might need to be setup on your router). Have you met these requirements? (y/n)

输入 y 继续。

接下来,您将被要求提供一个用于恢复操作的电子邮件地址:

Output
Please enter an email address (for urgent notices or key recovery): [email protected]

最后,输入与 Nextcloud 服务器相关联的域名:

Output
Please enter your domain name(s) (space-separated): example.com

你的 Let’ s Encrypt 证书将被请求,如果一切顺利的话,内部的 Apache 实例将被重新启动以立即实现 SSL:

Output
Attempting to obtain certificates... done Restarting apache... done

现在你可以跳过这一步,第一次登陆 Nextcloud。

选项2: 使用自签名证书设置 SSL

如果 Nextcloud 服务器没有域名,您仍然可以通过生成自签名的 SSL 证书来保护 web 界面。 该证书将允许通过加密连接访问 web 界面,但无法验证服务器的身份,因此您的浏览器可能会显示一个警告。

要生成自签名证书并配置 Nextcloud 使用该证书,输入:

  • sudo nextcloud.enable-https self-signed
Output
Generating key and self-signed certificate... done Restarting apache... done

上面的输出表明 Nextcloud 生成并启用了一个自签名证书。

现在界面是安全的,打开防火墙的网络端口允许访问网络界面:

  • sudo ufw allow "WWW Full"

你现在已经准备好第一次登录 Nextcloud 了。

登录到 Nextcloud 的 Web 界面

现在 Nextcloud 已经配置好了,在你的网页浏览器中访问你服务器的域名或 IP 地址:

https://example.com

注意: 如果您设置了自签名的 SSL 证书,您的浏览器可能会显示一个警告,说明连接不安全,因为服务器的证书没有由认可的证书颁发机构签名。 对于自签名的证书,这是预期的,所以请随意点击警告以进入站点。

由于您已经通过命令行配置了一个管理员帐户,您将被带到 Nextcloud 登录页面。 输入为管理用户创建的凭据:

点击登录按钮登录到 Nextcloud 的网页界面。

当你第一次输入的时候,一个窗口将会显示到各种 Nextcloud 客户端的链接,这些链接可以用来与 Nextcloud 实例进行交互和管理:

单击以下载您感兴趣的任何客户端,或者单击右上角的 x 退出窗口。 你将被带到 Nextcloud 的主界面,在那里你可以开始上传和管理文件:

您的安装现在已经完成并且安全。 您可以自由地探索该界面,以便对新系统的特性和功能更加熟悉。

总结

Nextcloud 可以复制流行的第三方云存储服务的功能。 内容可以在用户之间共享,也可以在外部通过公共 url 共享。 Nextcloud 的优势在于,信息安全地存储在您可以控制的地方。

探索界面和其他功能,使用 Nextcloud 的应用程序商店安装插件。