简介
Nextcloud 是 ownCloud 的一个分支,是一个文件共享服务器,允许您将个人内容(如文档和图片)存储在一个类似 Dropbox 的集中位置。与 Nextcloud 的区别在于,它的所有功能都是开源的。它还将敏感数据的控制和安全性归还给您,从而消除了使用第三方云托管服务的需求。
在本教程中,我们将在 Ubuntu 18.04 服务器上安装和配置一个 Nextcloud 实例。
先决条件
为了完成本指南中的步骤,您需要以下内容:
- 服务器上配置了 sudo 用户和防火墙:您可以按照 Ubuntu 18.04 初始服务器设置指南创建具有
sudo
权限的用户并设置基本防火墙。 - (可选)指向服务器的域名:我们将使用 TLS/SSL 来保护与 Nextcloud 安装的连接。如果您的服务器有一个域名,Nextcloud 可以设置和管理来自 Let’s Encrypt 的免费受信任的 SSL 证书。如果没有,Nextcloud 可以设置一个自签名的 SSL 证书来加密连接,但在 Web 浏览器中默认不受信任。如果您使用的是 DigitalOcean,您可以按照我们的指南设置服务器的域名,如果您打算使用 Let’s Encrypt。
完成上述步骤后,继续学习如何在服务器上设置 Nextcloud。
步骤 1 - 安装 Nextcloud
我们将使用 snappy 包装系统来安装 Nextcloud。这个包装系统在 Ubuntu 18.04 上默认可用,允许组织将软件与所有相关依赖项和配置一起打包到一个自包含的单元中,并自动更新。这意味着,我们可以安装 snap
包,它会自动处理底层系统,而不是安装和配置 Web 和数据库服务器,然后配置 Nextcloud 应用在其上运行。
要下载 Nextcloud snap
包并在系统上安装它,请输入:
sudo snap install nextcloud
Nextcloud 包将被下载并安装在您的服务器上。您可以通过列出与 snap
相关的更改来确认安装过程是否成功:
snap changes nextcloud
ID Status Spawn Ready Summary 2 Done today at 16:12 UTC today at 16:12 UTC Install "nextcloud" snap
状态和摘要表明安装已经顺利完成。
获取有关 Nextcloud Snap 的其他信息
如果您想要一些关于 Nextcloud snap
的更多信息,有一些命令可能会有所帮助。
snap info
命令可以显示描述、可用的 Nextcloud 管理命令、已安装的版本以及正在跟踪的 snap 通道:
snap info nextcloud
Snaps 可以定义它们支持的接口,这些接口由插槽和插件组成,当它们连接在一起时,给予 snap 访问某些功能或访问级别。例如,需要充当网络客户端的 snap 必须具有 network
接口。要查看此 snap 定义的 snap “接口”,请输入:
snap interfaces nextcloud
Slot Plug :network nextcloud :network-bind nextcloud - nextcloud:removable-media
要了解此 snap 提供的所有特定服务和应用程序,您可以查看 snap 定义文件,方法是输入:
cat /snap/nextcloud/current/meta/snap.yaml
这将允许您查看 snap 中包含的各个组件,如果您需要帮助进行调试。
配置管理员帐户
有几种不同的方式可以配置 Nextcloud snap。在本指南中,我们将通过命令行创建一个管理员用户,而不是通过 Web 界面创建,以避免管理员注册页面在访问您服务器的 IP 地址或域名的任何人都可以访问的小窗口期。
要使用 nextcloud.manual-install
命令配置 Nextcloud 的新管理员帐户,您必须传入用户名和密码作为参数:
sudo nextcloud.manual-install sammy password
以下消息表示 Nextcloud 已正确配置:
Nextcloud is not installed - only a limited number of commands are available Nextcloud was successfully installed
现在 Nextcloud 已安装,我们需要调整受信任的域,以便 Nextcloud 响应使用服务器的域名或 IP 地址的请求。
调整受信任的域
在命令行安装时,Nextcloud 限制实例响应的主机名。默认情况下,服务只响应对“localhost”主机名的请求。我们将通过服务器的域名或 IP 地址访问 Nextcloud,因此我们需要调整此设置以接受这些类型的请求。
您可以通过查询 trusted_domains
数组的值来查看当前设置:
sudo nextcloud.occ config:system:get trusted_domains
localhost
目前,数组中只有 localhost
作为第一个值。我们可以通过输入以下内容为服务器的域名或 IP 地址添加一个条目:
sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com
System config value trusted_domains => 1 set to string example.com
如果我们再次查询受信任的域,我们将看到现在有两个条目:
sudo nextcloud.occ config:system:get trusted_domains
localhost example.com
如果您需要添加另一种访问 Nextcloud 实例的方式,您可以通过重新运行 config:system:set
命令并调整 --value
来添加其他域或地址。
使用 SSL 保护 Nextcloud Web 界面
在开始使用 Nextcloud 之前,我们需要保护 Web 界面。
如果您的 Nextcloud 服务器关联有域名,Nextcloud 快照可以帮助您获取并配置来自 Let’s Encrypt 的受信任 SSL 证书。如果您的 Nextcloud 服务器没有域名,Nextcloud 可以配置一个自签名证书,它将加密您的 Web 流量,但无法验证服务器的身份。
考虑到这一点,请按照与您的情况相匹配的下面的部分。
选项 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 服务请求证书的条件:
为了让 Let's Encrypt 验证您实际拥有要请求证书的域名,您需要了解一些要求: 1. 为了注册 Let's Encrypt ACME 服务器,您必须同意当前生效的订阅者协议,位于以下位置: https://letsencrypt.org/repository/ 继续使用此工具,即表示您同意这些条款。如果不同意,请立即取消。 2. 您必须拥有要获取证书的域名指向此计算机的外部 IP 地址。 3. 此计算机的外部 IP 地址上的端口 80 和 443 必须指向此计算机(例如,您的路由器可能需要设置端口转发)。 您是否满足这些要求?(y/n)
输入 y 继续。
接下来,您将被要求提供用于恢复操作的电子邮件地址:
请输入电子邮件地址(用于紧急通知或密钥恢复):your_email@domain.com
最后,输入与您的 Nextcloud 服务器关联的域名:
请输入您的域名(以空格分隔):example.com
您的 Let’s Encrypt 证书将被请求,并且如果一切顺利,内部 Apache 实例将被重新启动以立即实施 SSL:
尝试获取证书... 完成 重新启动 apache... 完成
您现在可以跳转到首次登录 Nextcloud。
选项 2:使用自签名证书设置 SSL
如果您的 Nextcloud 服务器没有域名,您仍然可以通过生成自签名 SSL 证书来保护 Web 界面。此证书将允许通过加密连接访问 Web 界面,但无法验证服务器的身份,因此您的浏览器可能会显示警告。
要生成自签名证书并配置 Nextcloud 使用它,请输入:
sudo nextcloud.enable-https self-signed
生成密钥和自签名证书... 完成 重新启动 apache... 完成
上述输出表明 Nextcloud 生成并启用了自签名证书。
现在界面已经安全,打开防火墙中的 Web 端口以允许访问 Web 界面:
sudo ufw allow 80,443/tcp
您现在可以准备首次登录 Nextcloud。
登录到 Nextcloud Web 界面
现在 Nextcloud 已配置好,访问您服务器的域名或 IP 地址在您的 Web 浏览器中:
https://example.com
由于您已经从命令行配置了管理员帐户,您将被带到 Nextcloud 登录页面。输入您为管理员用户创建的凭据:
!Nextcloud 登录页面
点击 登录 按钮以登录到 Nextcloud Web 界面。
第一次进入时,将显示一个窗口,其中包含可用于与和管理 Nextcloud 实例交互的各种 Nextcloud 客户端的链接:
!Nextcloud 客户端模态
点击链接以下载您感兴趣的任何客户端,或通过点击右上角的 X 退出窗口。您将进入主 Nextcloud 界面,您可以开始上传和管理文件:
!Nextcloud 主页面
您的安装现在已经完成并已安全。随时探索界面,以更熟悉您的新系统的功能和功能。
结论
Nextcloud 可以复制流行的第三方云存储服务的功能。内容可以在用户之间共享,也可以通过公共 URL 在外部共享。Nextcloud 的优势在于信息存储在你控制的安全位置。
探索界面,并通过 Nextcloud 的应用商店安装插件以获得额外功能。