Nextcloud是ownCloud的一个分支,它是一个文件共享服务器,允许您将个人内容(如文档和图片)存储在集中位置,就像Dropbox一样。与Nextcloud的不同之处在于它的所有功能都是开源的。它还会将敏感数据的控制权和安全性返回给您,从而无需使用第三方云托管服务。
在本教程中,我们将在Debian 9服务器上安装和配置Nextcloud实例。
要完成本教程中的步骤,您需要具备以下条件:
sudo
权限的用户并设置基本防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。完成上述步骤后,继续学习如何在服务器上设置Nextcloud。
我们将使用snappy包装系统安装Nextcloud 。这个打包系统可以通过默认存储库安装在Debian 9上,允许组织在具有自动更新功能的独立单元中发布软件以及所有相关的依赖项和配置。这意味着我们可以安装自动处理底层系统的snap
软件包,而不是安装和配置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 snap
包:
sudo snap install nextcloud
Nextcloud软件包将下载并安装在您的服务器上。您可以通过列出与snap
关联的更改来确认安装过程是否成功:
snap changes nextcloud
ID Status Spawn Ready Summary
1 Done today at 20:18 UTC today at 20:18 UTC Install "nextcloud" snap
状态和摘要表明安装完成没有任何问题。
如果您想了解有关snap
Nextcloud的更多信息,可以使用一些有用的命令。
snap info
命令可以显示描述,可用的Nextcloud管理命令,以及正在跟踪的已安装版本和快照通道:
snap info nextcloud
Snaps可以定义它们支持的接口,它们包含一个插槽和插头,当它们连接在一起时,可以快速访问某些功能或访问级别。例如,需要充当网络客户端的快照必须具有network
接口。要查看此快照定义的快照“接口”,请键入:
snap interfaces nextcloud
Slot Plug
:network nextcloud
:network-bind nextcloud
- nextcloud:removable-media
要了解此快照提供的所有特定服务和应用程序,您可以通过键入以下内容来查看快照定义文件:
less /snap/nextcloud/current/meta/snap.yaml
如果需要调试帮助,这将允许您查看快照中包含的各个组件。
您可以通过几种不同的方式配置Nextcloud snap。在本教程中,我们不是通过Web界面创建管理用户,而是在命令行上创建一个管理用户,以避免出现一个小窗口,访问服务器的IP地址或域名的任何人都可以访问管理员注册页面。
要使用新的管理员帐户配置Nextcloud,请使用nextcloud.manual-install
命令。您必须传入用户名和密码作为参数:
sudo -i 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 -i nextcloud.occ config:system:get trusted_domains
localhost
目前,只有localhost
作为数组中的第一个值出现。我们可以通过输入以下内容为我们服务器的域名或IP地址添加条目:
sudo -i nextcloud.occ config:system:set trusted_domains 1 --value=example.com
System config value trusted_domains => 1 set to string example.com
如果我们再次查询受信任的域,我们将看到我们现在有两个条目:
sudo -i nextcloud.occ config:system:get trusted_domains
localhost
example.com
如果需要添加另一种访问Nextcloud实例的方法,可以通过使用递增的索引号(第一个命令中的“1”)重新运行config:system:set
命令并调整--value
来添加其他域或地址。
在我们开始使用Nextcloud之前,我们需要保护Web界面。
如果您的域名与Nextcloud服务器关联,则Nextcloud snap可以帮助您从Let的加密中获取和配置受信任的SSL证书。如果您的Nextcloud服务器没有域名,则Nextcloud可以配置自签名证书,该证书将加密您的Web流量,但无法验证您的服务器的身份。
考虑到这一点,请按照下面符合您的方案的部分进行操作。
如果您的域名与Nextcloud服务器相关联,则保护Web界面的最佳选择是获取Let的加密SSL证书。
首先打开防火墙中允许加密用于验证域所有权的端口。这将使您的Nextcloud登录页面可公开访问,但由于我们已经配置了管理员帐户,因此没有人能够劫持安装:
sudo ufw allow "WWW Full"
接下来,输入以下内容来请求Let's Encrypt证书:
sudo -i nextcloud.enable-https lets-encrypt
首先会询问您的服务器是否满足从Let's Encrypt服务请求证书所需的条件:
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继续。
接下来,系统会要求您提供用于恢复操作的电子邮件地址:
Please enter an email address (for urgent notices or key recovery): your_email@domain.com
最后,输入与Nextcloud服务器关联的域名:
Please enter your domain name(s) (space-separated): example.com
您的Let's Encrypt证书将被请求,并且如果一切顺利,将重新启动内部Apache实例以立即实施SSL:
Attempting to obtain certificates... done
Restarting apache... done
您现在可以跳过,第一次登录Nextcloud。
如果您的Nextcloud服务器没有域名,您仍然可以通过生成自签名SSL证书来保护Web界面。此证书将允许通过加密连接访问Web界面,但无法验证服务器的身份,因此您的浏览器可能会显示警告。
要生成自签名证书并配置Nextcloud以使用它,请键入:
sudo nextcloud.enable-https self-signed
Generating key and self-signed certificate... done
Restarting apache... done
以上输出表明Nextcloud生成并启用了自签名证书。
现在接口是安全的,打开防火墙中的Web端口以允许访问Web界面:
sudo ufw allow "WWW Full"
您现在已准备好第一次登录Nextcloud。
现在已配置Nextcloud,请在Web浏览器中访问服务器的域名或IP地址:
https://example.com
注意:如果设置自签名SSL证书,则浏览器可能会显示连接不安全的警告,因为服务器的证书未由可识别的证书颁发机构签名。这适用于自签名证书,因此请随意点击警告以继续访问该站点。
由于您已从命令行配置管理员帐户,因此您将进入Nextcloud登录页面。输入您为管理用户创建的凭据:
单击“ 登录”按钮登录Nextcloud Web界面。
第一次进入时,将显示一个窗口,其中包含指向各种Nextcloud客户端的链接,这些客户端可用于与Nextcloud实例进行交互并对其进行管理:
单击以下载您感兴趣的任何客户端,或单击右上角的X退出窗口。您将进入主Nextcloud界面,您可以在其中开始上传和管理文件:
您的安装现已完成且安全。您可以随意浏览界面,以便更熟悉新系统的特性和功能。
Nextcloud可以复制流行的第三方云存储服务的功能。内容可以在用户之间共享,也可以在外部与公共URL共享 Nextcloud的优势在于信息安全地存储在您控制的位置。
浏览界面和其他功能,使用Nextcloud的应用商店安装插件。
想要了解更多关于安装和配置Nextcloud的相关教程,请前往腾讯云+社区学习更多知识。
参考文献:《How To Install and Configure Nextcloud on Debian 9》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。