简介
Nextcloud 是 ownCloud 的一个分支,是一个文件共享服务器,允许您将个人内容(如文档和图片)存储在一个类似 Dropbox 的集中位置。与 Nextcloud 的不同之处在于,它的所有功能都是开源的。它还将敏感数据的控制和安全性归还给您,从而消除了使用第三方云托管服务的需求。
在本教程中,我们将在 Ubuntu 16.04 服务器上安装和配置一个 Nextcloud 实例。
先决条件
为了完成本指南中的步骤,您需要以下内容:
- 服务器上配置了 sudo 用户和防火墙:您可以按照 Ubuntu 16.04 初始服务器设置指南创建具有
sudo
权限的用户并设置基本防火墙。 - (可选)指向服务器的域名:我们将使用 TLS/SSL 来保护与 Nextcloud 安装的连接。如果您的服务器有一个域名,Nextcloud 可以设置和管理来自 Let’s Encrypt 的免费受信任的 SSL 证书。如果没有,Nextcloud 可以设置一个自签名的 SSL 证书,可以加密连接,但在 Web 浏览器中默认不受信任。如果您使用的是 DigitalOcean,您可以按照我们的指南设置服务器的域名,如果您打算使用 Let’s Encrypt。
完成上述步骤后,继续学习如何在服务器上设置 Nextcloud。
步骤 1 – 安装 Nextcloud
我们将使用 snappy 包装系统来安装 Nextcloud。这个包装系统在 Ubuntu 16.04 上默认可用,允许组织将软件与所有相关依赖项和配置一起打包到一个自包含的单元中,并自动更新。这意味着我们可以安装 snap
包,它会自动处理底层系统,而不是安装和配置 Web 和数据库服务器,然后配置 Nextcloud 应用在其上运行。
要下载 Nextcloud snap
包并在系统上安装它,请输入:
sudo snap install nextcloud
Nextcloud 包将被下载并安装在您的服务器上。您可以通过列出与 snap
相关的更改来确认安装过程是否成功:
snap changes nextcloud
ID Status Spawn Ready Summary 2 Done 2017-10-03T20:03:09Z 2017-10-03T20:03:26Z 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 snap 不包含 PCNTL 扩展。这些可以安全地忽略:
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php Nextcloud is not installed - only a limited number of commands are available Nextcloud was successfully installed
现在 Nextcloud 已安装,我们需要调整受信任的域,以便 Nextcloud 响应使用服务器的域名或 IP 地址的请求。
调整受信任的域名
在使用命令行安装 Nextcloud 时,Nextcloud 会限制实例响应的主机名。默认情况下,服务只会响应对“localhost”主机名的请求。我们将通过服务器的域名或 IP 地址访问 Nextcloud,因此我们需要调整此设置以接受这些类型的请求。
您可以通过查询trusted_domains
数组的值来查看当前设置:
sudo nextcloud.occ config:system:get trusted_domains
当前,数组中只有`localhost`作为第一个值。我们可以通过输入以下命令为服务器的域名或 IP 地址添加条目: ```command sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com
如果我们再次查询受信任的域名,我们将看到现在有两个条目: ```command sudo nextcloud.occ config:system:get trusted_domains
如果您需要添加另一种访问 Nextcloud 实例的方式,您可以通过使用增加的索引号(第一个命令中的“1”)和调整`--value`来重新运行`config:system:set`命令来添加其他域名或地址。 ## 使用 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 登录页面公开访问,但由于我们已经配置了管理员帐户,因此没有人能够劫持安装: ```command 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 地址在浏览器中访问:
https://example.com
由于你已经在命令行中配置了管理员账户,你将被带到 Nextcloud 登录页面。输入你为管理员用户创建的凭据:
!Nextcloud 登录页面
点击 登录 按钮以登录 Nextcloud Web 界面。
第一次进入时,会显示一个窗口,其中包含可用于与和管理 Nextcloud 实例进行交互的各种 Nextcloud 客户端的链接:
!Nextcloud 客户端模态框
点击链接以下载你感兴趣的任何客户端,或者点击右上角的 X 退出窗口。你将被带到主 Nextcloud 界面,你可以开始上传和管理文件:
!Nextcloud 主页面
你的安装现在已经完成并得到了保护。随意探索界面,以更熟悉你的新系统的功能和特性。
结论
Nextcloud 可以复制流行的第三方云存储服务的功能。内容可以在用户之间共享,或者通过公共 URL 在外部共享。Nextcloud 的优势在于信息存储在你控制的安全位置。
探索界面,并通过 Nextcloud 的应用商店安装插件以获得额外功能。