如何在Ubuntu20.04上安装和配置Nextcloud

来自菜鸟教程
跳转至:导航、​搜索

介绍

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

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

先决条件

为了完成本指南中的步骤,您将需要以下内容:

  • 在您的服务器上配置的非 root sudo 启用用户和防火墙:您可以创建具有 sudo 权限的用户并按照 初始服务器设置设置基本防火墙Ubuntu 20.04
  • (可选)指向您的服务器的域名:我们将使用 TLS/SSL 保护与 Nextcloud 安装的连接。 如果您的服务器有域名,Nextcloud 可以设置和管理来自 Let's Encrypt 的免费、受信任的 SSL 证书。 如果没有,Nextcloud 可以设置一个可以加密连接的自签名 SSL 证书,但默认情况下在 Web 浏览器中不受信任。 如果您使用的是 DigitalOcean,您可以阅读我们的 DNS 文档 以了解如何将域添加到您的帐户并管理 DNS 记录,如果您打算使用 Let's Encrypt。

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

第 1 步 – 安装 Nextcloud

我们将使用 Snap 打包系统安装 Nextcloud。 这个打包系统默认在 Ubuntu 20.04 上可用,它允许组织在具有自动更新的独立单元中发布软件以及所有相关的依赖项和配置。 这意味着,我们可以安装自动处理底层系统的 snap 包,而不是安装和配置 Web 和数据库服务器,然后配置 Nextcloud 应用程序以在其上运行。

要下载 Nextcloud snap 包并将其安装在系统上,请键入:

sudo snap install nextcloud

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

snap changes nextcloud
OutputID   Status  Spawn               Ready               Summary
4    Done    today at 16:12 UTC  today at 16:12 UTC  Install "nextcloud" snap

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

获取有关 Nextcloud Snap 的其他信息

如果您想了解有关 Nextcloud snap 的更多信息,有一些命令可能会有所帮助。

snap info 命令可以显示描述、可用的 Nextcloud 管理命令,以及已安装的版本和正在跟踪的快照通道:

snap info nextcloud

Snap 可以定义它们支持的连接,其中包括一个插槽和插头,当它们连接在一起时,可以让 snap 访问某些功能或访问级别。 例如,需要充当网络客户端的快照必须具有 network 连接。 要查看此快照定义的快照 connections,请键入:

snap connections nextcloud
OutputInterface        Plug                       Slot           Notes
network          nextcloud:network          :network       -
network-bind     nextcloud:network-bind     :network-bind  -
removable-media  nextcloud:removable-media  -              -

要了解此 snap 提供的所有特定服务和应用程序,您可以通过键入以下内容查看 snap 定义文件:

cat /snap/nextcloud/current/meta/snap.yaml

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

第 2 步 - 配置管理帐户

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

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

sudo nextcloud.manual-install sammy password

以下消息表明 Nextcloud 已正确配置:

OutputNextcloud was successfully installed

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

第 3 步 – 调整可信域

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

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

sudo nextcloud.occ config:system:get trusted_domains
Outputlocalhost

目前,只有 localhost 作为数组中的第一个值存在。 我们可以通过键入以下内容为我们的服务器的域名或 IP 地址添加一个条目:

sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com
OutputSystem config value trusted_domains => 1 set to string example.com

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

sudo nextcloud.occ config:system:get trusted_domains
Outputlocalhost
example.com

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

第 4 步 – 使用 SSL 保护 Nextcloud Web 界面

在我们开始使用 Nextcloud 之前,我们需要保护 Web 界面。

如果您有与 Nextcloud 服务器关联的域名,Nextcloud snap 可以帮助您从 Let's Encrypt 获取和配置受信任的 SSL 证书。 如果您的 Nextcloud 服务器 没有 域名,Nextcloud 可以配置一个自签名证书,该证书将加密您的网络流量,但不会被您的网络浏览器自动信任。

考虑到这一点,请按照下面与您的方案相匹配的部分进行操作。

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

如果您有一个与 Nextcloud 服务器关联的域名,那么保护您的 Web 界面的最佳选择是获取 Let's Encrypt SSL 证书。

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

sudo ufw allow 80,443/tcp

接下来,通过键入以下内容请求 Let's Encrypt 证书:

sudo nextcloud.enable-https lets-encrypt

首先会询问您的服务器是否满足从 Let's Encrypt 服务请求证书的必要条件:

OutputIn 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 继续。

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

OutputPlease enter an email address (for urgent notices or key recovery):

输入您的电子邮件,然后按 Enter 继续。

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

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

将请求您的 Let's Encrypt 证书,如果一切顺利,内部 Apache 实例将重新启动以立即实施 SSL:

OutputAttempting to obtain certificates... done
Restarting apache... done

您现在可以跳到下一步以首次登录 Nextcloud。

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

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

要生成自签名证书并配置 Nextcloud 以使用它,请键入:

sudo nextcloud.enable-https self-signed
OutputGenerating key and self-signed certificate... done
Restarting apache... done

以上输出表明 Nextcloud 生成并启用了自签名证书。

既然界面是安全的,请在防火墙中打开 Web 端口以允许访问 Web 界面:

sudo ufw allow 80,443/tcp

您现在已准备好首次登录 Nextcloud。

第 5 步 – 登录 Nextcloud Web 界面

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

https://example.com

注意: 如果您设置自签名 SSL 证书,您的浏览器可能会显示连接不安全的警告,因为服务器的证书未由公认的证书颁发机构签名。 这是自签名证书的预期结果,因此请随意单击警告以继续访问该站点。


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

点击【X10X】登录【X20X】按钮,登录Nextcloud网页界面。

第一次进入时,将显示一个窗口,其中包含一些介绍性文本和指向可用于访问 Nextcloud 实例的各种 Nextcloud 客户端的链接:

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

您的安装现已完成且安全。 随意探索界面,以更加熟悉新系统的特性和功能。

结论

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

有关其他功能,请查看 Nextcloud 的应用商店 ,您可以在其中安装插件以扩展服务的功能。