最近宅在家里实在太无聊了,准备分享点片片,想来想去还是决定搞个nextcloud。 众所周知nextcloud是一个很蛋疼(臃肿)的程序,需要进行各种优化才能运行的比较流畅,所以我也懒得折腾了,这次直接用snap安装,方便省事~ snap这个东西以前我介绍过,之前我的那个rocketchat就是用这个东西部署的,已经稳定运行很多个月了,所以用在生产环境是完全没有问题的。 关于snap的优缺点这里稍微提一下,就拿部署nextcloud来说。 优点: 1.快速部署,你无需懂什么LAMP/LNMP环境搭建,只需要几条命令就可以傻瓜式安装。 2.运行稳定,环境都是人家大佬给你配置好的,只要你不瞎姬芭折腾,一般不会BOOM。 3.备份/还原/迁移特别简单,基本就是打包/解压压缩包就行,本文后续会演示。 缺点: 1.snap包装后的程序过于封闭,导致有些插件app不能使用,例如需要调用外部程序的插件如aria2/ffmpeg这些插件就用不了了。 snap支持众多Linux发行版但对于Debian来说,目前只支持9/10,低于这两个版本的系统是用不了的。 首先安装snapd: apt -y update apt -y install snapd 注意:安装完成之后关闭当前的SSH,重新登录一次。 然后就可以一条命令安装nextcloud了,这里看你的个人喜好选择你要安装的版本: snap install nextcloud snap install nextcloud --beta snap install nextcloud --edge snap install nextcloud --channel=18/edge snap install nextcloud --channel=17/edge 当前18/edge是最新版,这里我安装的是18.0.0,具体版本号可以看snap商店的页面: https://snapcraft.io/nextcloud 解析一个域名到你的服务器,等待解析生效后,执行下面的命令就可以帮你自动配置SSL证书: nextcloud.enable-https lets-encrypt 就是这么简单,一个可用于生产环境的nextcloud就部署好了。 接下来介绍下如何把本地目录或者文件添加到nextcloud。 用过nextcloud的都知道只要不是通过nextcloud上传的文件,都不会在nextcloud内显示。 就比如你直接把本地文件复制或者移动到nextcloud的data目录内,nextcloud是无法显示这些文件的。这里需要用到occ的文件扫描。 首先把你要添加到nextcloud的文件或者目录移动到下面的路径(其中imlala是你的用户名,注意替换:) /var/snap/nextcloud/common/nextcloud/data/imlala/files 然后执行扫描命令即可: nextcloud.occ files:scan --all 还有很多其他用法可以执行下面的命令查看: nextcloud.occ files:scan --help 现在介绍一下如何进行备份和还原,首先备份执行下面的命令即可: nextcloud.export -abcd 完成之后会回显给你一个目录路径: 打包这个目录: tar -zcvf /root/20200201-093335.tar.gz /var/snap/nextcloud/common/backups/20200201-093335 之后将压缩包传到你的新机器上: scp /root/20200201-093335.tar.gz [email protected]:/root 解压: tar -xzvf 20200201-093335.tar.gz 在新机器上重新使用snap安装nextcloud,再执行下面的命令即可恢复: nextcloud.import -abcd var/snap/nextcloud/common/backups/20200201-093335