背景:工作上需要一个云同步网盘,刚好上个月上了腾讯服务器的车,正好用来搭个私有云。

主角:NextCloud


Nextcloud简介

Nextcloud是一套用于创建和使用文件托管服务的客户端-服务器软件。它在功能上类似于Dropbox,虽然Nextcloud是免费的和开源的,允许任何人在私人服务器上安装和操作它。与Dropbox等专有服务相反,开放架构允许以应用程序的形式向服务器添加附加功能。
虽然Nextcloud作为ownCloud的衍生版本,在其基础上做了许多改进,但有一些差异。ownCloud提供了一个开源社区版本,但它们还提供了一个专有的企业版,具有附加功能和支持订阅。相比之下,Nextcloud是完全开源的。

NextCloud安装方式有三种:1. LAMP/LNMP+NextCloud.  2. Snap安装。3. Docker安装。

本文只讲最简单的这一种Snap安装。

Snap是什么?

Snap的安装包扩展名是.snap,类似于一个容器,完全独立于系统,它包含一个应用程序需要用到的所有文件和库(snap包包含一个私有的root文件系统,里面包含了依赖的软件包)。它们会被安装到单独的目录,各个应用程序之间相互隔离,互不影响。而且安装快捷、创建简单、运行安全,易管理。目前支持的主流发行版有Ubuntu、Debian等。(目前还不支持CentOS,正在适配中)

nextcloud snap包含以下组件:

    Nextcloud 12.0.5

    Apache 2.4

    PHP 7.1

    MySQL 5.7

    Redis 3.2

    mDNS for network discovery

Snap常用命令

#查看snap版本信息
snap –version
#找出所有snap应用
snap find
#安装应用
snap install 包名
#重启应用
snap restart 应用名
#升级应用
snap refresh 应用名
#查看安装的应用
snap list
#卸载应用
snap remove 应用名

安装过程

1.首先把ubuntu16.04的镜像拉过来重装一下系统(个人洁癖)

2.#更新系统

   sudo apt-get update -y

3.检查系统有没有预装snap.(一般ubuntu16.04是预装了的)

   查看一下本机snap版本 snap –version

   如果没有安装执行下面两条

   sudo apt-get install snap
   sudo apt-get install snapd

4.#安装NextCloud

   sudo snap install nextcloud

安装完成后就可以打开http://your_ip进入登录页面了,如果想用域名登录并配置SSL证书的话,先别登录,看后面。

配置域名&添加SSL证书

将域名解析至VPS的IP就可以使用域名登录了。

使用Snap安装的Nextcloud,那么添加SSL加密访问是一件非常简单的事情。先确保你的域名已经成功解析到主机上,然后执行命令:

  sudo nextcloud.enable-https lets-encrypt

根据要求输入邮箱、域名,再次打开网站就可以见到域名前的http变成了https。这里的SSL证书是nextcloud自签名证书。

如果想用自己的证书,执行下条命令,

  sudo nextcloud.enable-https self-signed

在执行命令后找到SSL证书的路径,将自己的证书上传替换生成的自签名证书文件即可。(ps: 此项肉松没有试验成功,可能是没有找对证书路径吧)

SSL弄好后最好检查/var/snap/nextcloud/current/nextcloud/config/config.php中域名,然后就可以愉快地使用了,第一个登录的系统自动记录为管理员。

现在可以去官网https://nextcloud.com/下载手机和电脑app了,Injoy it!

补充

1.数据库位置,使用Snap安装的Nextcloud,数据库文件在以下路径中/var/snap/nextcloud/xxxx(版本数字)/mysql,需要备份直接备份此文件夹即可。

2.数据位置,NextCloud存储文件夹在/var/snap/nextcloud/common/nextcloud/data,可以通过修改/var/snap/nextcloud/current/nextcloud/config/config.php的datadirectory对应的参数来改变位置,在数据迁移的时候直接复制此文件夹过去。

3.Snap安装优缺点:

snap优点:The snap is nice for getting up and running quickly with minimal space, and will work great if you’re happy not messing with it. Since it’s a snap you also get the benefit of automatic updates and the ability to rollback without worrying about needing to take a snapshot, etc.

翻译:snap安装快捷,傻瓜式一键安装,几分钟内搞定。同时,snap支持自动升级、回滚等,你无需使用复杂的命令工具。

snap缺点:However, the snap is very opinionated. Don’t want to use Apache? Sorry, the snap uses it. Don’t want to use MySQL? Sorry, MariaDB does not run on ARM. Something other than PHP 7.0.15? We picked the version we feel gives the best results. In other words, it’s not very tinker-friendly. We don’t do this to be mean, we do this so that we can reliably update it without your needing to worry about it.

翻译:snap不能自定义,只能使用snap既定的MysqL、apache、PHP等。不过,这样的好处就是经过官方测试过的运行稳定且有利于后期自动升级。

VPS手动安装优缺点:The VM is much more flexible. It’s a full version of Ubuntu server edition, allowing you to tweak whatever you need and it comes with many apps which are not that easy to configure for inexperienced administrators. This of course makes it larger. You’ll also need to make sure you maintain it and keep the OS up-to-date. Since it’s virtualized you can assign disk, CPU, memory, and network quotas to it (you’d need to install the snap in an lxc container or a VM to get the same abilities).

翻译:VPS手动则比较灵活,你可以自已配置磁盘、CPU、内存和网络,但是同时你需要懂得如何维护好VPS操作系统。

4.snap-nextcloud github地址https://github.com/nextcloud/nextcloud-snap


部分资料来源于网络,最近很懒不想上图