在CVM搭建你自己的网盘

简介

Nextcloud是ownCloud的一个分支,它是一个文件共享服务器,允许您将个人内容(如文档和图片)存储在集中位置,就像腾讯微云、百度网盘、Dropbox一样。Nextcloud的不同之处在于它的所有功能都是开源的。它还会将敏感数据的控制权和安全性返回给您,无需使用第三方云托管服务。

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

准备

要完成本教程中的步骤,您需要完成以下条件:

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

安装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 info nextcloud

Snaps可以定义它们支持的接口,其包含一个slot和plug,当它们连接在一起时,可以快速访问某些功能。例如,需要充当网络客户端的快照必须具有该network接口。要查看此快照定义的快照“接口”,请输入:

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

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

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

如果需要调试帮助,您可以查看快照中包含的各个组件。

配置管理帐户

您可以通过几种不同的方式配置Nextcloud snap。在本教程中,我们不是通过Web界面创建管理用户,而是在命令行上创建一个管理用户,避免所以访问服务器人都可以访问管理员注册页面。

要使用新的管理员帐户配置Nextcloud,请使用nextcloud.manual-install命令。

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会限制实例将响应的主机名。默认情况下,该服务仅响应“localhost”主机名发出的请求。我们将通过服务器的域名或IP地址访问Nextcloud,因此我们需要调整此设置以接受这些类型的请求。

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

sudo nextcloud.occ config:system:get trusted_domains
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
localhost

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

sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com
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
System config value trusted_domains => 1 set to string example.com

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

sudo nextcloud.occ config:system:get trusted_domains
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
localhost
example.com

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

使用SSL保护Nextcloud Web界面

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

如果您的域名与Nextcloud服务器关联,Nextcloudsnap可以帮助您获取和配置受信任的SSL证书。如果您的Nextcloud服务器没有域名,则Nextcloud可以配置自签名证书,该证书将加密您的Web流量,但无法验证您的服务器的身份。

考虑到这一点,请参照下面符合您方案进行操作。

选项1:使用腾讯云SSL证书的加密设置

如果您的域名与Nextcloud服务器相关联,则保护Web界面的最佳选择是获取腾讯云SSL证书

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

sudo ufw allow 80,443/tcp

1. 申请入口

进入SSL证书管理控制台

单击【申请证书】

查看申请域名型证书型号,单击【确定】

2. 填写申请

填写申请域名,例如qcloud.com,cloud.tencent.com,demo.test.qlcoud.com。

3 手动DNS验证方式

证书默认支持收到DNS验证,验证方法可查看详情

4 提交申请后验证身份

提交申请成功后弹窗提示如下,需要前往【证书详情页】获取CName记录添加解析:

获取CName记录如Tips中显示,需要尽快成功添加解析,方可通过CA机构审核:

5 安装证书

下载好证书如下:

cert.pem  chain.pem  privkey.pem

我们需要将

申请成功后需要下载证书文件复制到snap配置文件中certs目录中。这里需要切换到root权限,使用以下命令切换到root用户。

sudo su

接下来我们找到snap目录中的nextcloud目录中。

cd /var/snap/nextcloud/
ls
7658  common  current

使用上面的命令,你将会看到一串数字,我这里以7658文件夹为例。使用下下面的命令切换到certs目录中。

cd 7658/certs/self-signed/

然后将您在腾讯云下载的证书复制到这个目录下,注意名称必须为cert.pem chain.pem privkey.pem

接下来重启nextcloud服务即可正常使用腾讯云的证书。

snap restart nextcloud 

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

如果您的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 80,443/tcp

您现在已可以第一次登录Nextcloud。

登录Nextcloud Web界面

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

https://example.com

注意:如果设置自签名SSL证书,则浏览器可能会显示连接不安全的警告,因为服务器的证书未由可识别的证书颁发机构签名。这适用于自签名证书,因此请点击警告以继续访问该站点。

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

单击“ 登录”按钮登录Nextcloud Web界面。

第一次进入时,将显示一个窗口,其中包含指向各种Nextcloud客户端的链接,这些客户端可用于与Nextcloud实例进行交互并对其进行管理:

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

您的安装现已安全完成。您可以随意浏览界面,以便更熟悉新系统的特性和功能。

结论

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


参考文献:《How To Install and Configure Nextcloud on Ubuntu 16.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ytkah

dedecms如何去除后台登陆验证码

  用dedecms批量建站一般直接把文件打包复制,然后导入数据库,一个新网站就好了,但有时后台一直无法登录,提示验证码错误。那我们就想怎么把验证码关闭,现在就...

37770
来自专栏Theo Tsao

Linux磁盘和文件系统管理

14010
来自专栏13blog.site

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites

前言 今天一个朋友让我帮他做一下tomcat的https配置,中间遇到了标题中这个错误,因此记录了一下过程,服务器、域名、证书、tomcat都已经准备好,就是需...

48080
来自专栏hbbliyong

Git SSH Key 生成步骤

Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。 github的SSH配置如下: 一 、 设置Git的us...

39660
来自专栏北京马哥教育

SSH协议详解

一、 前言 使用SSH可以在本地主机和远程服务器之间进行加密地传输数据,实现数据的安全。而OpenSSH是SSH协议的免费开源实现,它采用安全、加密的网络连接...

1K40
来自专栏魏艾斯博客www.vpsss.net

腾讯云 CDN 和 lnmp1.4 环境安装 Let’s Encrypt 免费证书教程

29430
来自专栏有困难要上,没有困难创造困难也要上!

Redis实现类似同步方法调用的功能(一)

379110
来自专栏慎独

CentOS的SVN服务器搭建和自动部署

32630
来自专栏Huramkin的归档库

SSH快速登录服务器

平时有许多服务器需要通过终端进行管理,如果每次都使用ssh username@ipdomain这种命令会显得麻烦,效率低下而且还需要每次输入密码。所以这里要说的...

95110
来自专栏运维小白

10.20 firewalld的9个zone

Linux防火墙-firewalld 打开firewalld systemctl disable iptables systemctl stop iptable...

20390

扫码关注云+社区

领取腾讯云代金券