将ubuntu设置为NAS——7. 私人网盘nextcloud升级
前言的前言
想通过本平台记录一些折腾小主机的过程,同时方便自己查阅,还能赚点金币,于是就有了这个小系列。之前写了6篇
我目前的主机外壳采用蜗牛星际外壳,主板是暴风酷播云华擎主板J3455,电源是暴风酷播云的台达电源,硬盘是一块固态硬盘,3块1T的机械硬盘,原蜗牛星际背板拆除,电源与数据线直接接硬盘的方式。软件层面主要是用Kubuntu18.04系统(ubuntu其他风味版,和原版功能上没有太大区别),安装了Transmission-daemon用于下载,nextcloud用于网络硬盘,kvm作为虚拟机开软路由,还有其他一些简单功能,基本实现NAS的作用。后面我将慢慢分享其中的过程,作为小白,很多都是自己参考网上根据其他作者文章,再自己摸索实践出来,如有谬误,请各位指正,大家共同学习。后面涉及的命令行都是在ubuntu终端(不要问我终端是什么 )中输入,请大家注意。
正式的前言
Nextcloud软件版本更新还是比较频繁,虽然使用旧版也一般不会遇到太大的问题,但抱着更愿意使用新版本,新版本性能或功能会更强的想法,还是升级一下新版。如何升级呢?重装?如果一出新版软件,我们就重新安装一遍,这样很不利于数据的安全。虽然重要数据一般我会以外部存储方式处理(此方法中篇已经介绍),但总该有保证全部数据安全的方式进行升级的方案吧。一个重要的建议和提示:升级操作前,请对重要数据进行备份!!!
1、Nextcloud自带升级方式
其实软件本身是再带升级功能的。
打开更新器就可以了。但是由于众所周知的原因,其实这个方式在国内基本无法完成,或者速度完全不行,自己有梯子的可以尝试。这种方式应该是最便利了,可惜了。
2、手动升级
从设置界面可以看到目前我的版本是16.0.4,而从官网,可以看到目前最新是17.0.1,文章中是之前写,部分截图是17.0.0版。
2.1 下载最新版Nextcloud
建议采用迅雷下载。可以直接下载到Nextcloud服务主机(ubuntu桌面版),或者自己使用的桌面电脑(win10)。
2.2 备份数据
建议备份原nextcloud文件的config、data文件,(如果你改过主题目录还有theme目录),config、data和theme目录都在nextcloud目录下,比如按照我方案的话在目录/var/www/html/nextcloud下面
复制几个文件夹到需要备份文件夹位置
sudo cp /var/www/html/nextcloud/config /home/yang/ -Rf
sudo cp /var/www/html/nextcloud/data /home/yang/ -Rf
sudo cp /var/www/html/nextcloud/theme /home/yang/ -Rf
数据库之前我用的MySQL/MariaDB,也需要备份一下
mysqldump --single-transaction -u [username] -p[password] [db_name] > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
username换成nextcloud,password换成你设置的密码,db_name换成你设置的数据库名,记得去掉[ ],然后进入到你有权限且需要存储的目录,比如/home目录。
以前截图,大家作为参考,按照之前分享文章对应的名称和图片不一样
可以通过ls命令查看备份好的文件。
2.3 覆盖Nextcloud目录
由于nextcloud目录权限用户我们设置为www-data,所以我们无法用当前用户或root用户修改nextcloud目录。首先修改用户权限,再cd进入目录。
sudo chown yang /var/www/html/nextcloud -Rf //这里的yang是我的当前用户,请修改成你的用户名
cd /var/www/html/nextcloud
先删除除了config、data和theme目录以外的全部文件。建议使用删除的方法,如果直接覆盖,会出现文件没有通过完整性检查的错误。可以rm命令,或者ubuntu桌面版方式选择删除,或者SFTP登入删除。
然后直接解压缩下载的nextcloud文件,用sftp上传到/var/www/html/nextcloud。SFTP我用的WinSCP软件,安装后输入服务主机网址,账号,密码,端口默认是22,就能直接登陆,看到Nextcloud服务主机目录结构,然后上传到对应目录,覆盖同名文件就好。当然我们用桌面版的Ubuntu,也可以直接在里面操作,鼠标复制粘贴,也很简单。
再改回Nextcloud目录权限
sudo chown www-data /var/www/html/nextcloud -Rf
2.4 重启服务
sudo service apache2 restart
开始升级
sudo -u www-data php occ upgrade
或者是这样的
3、重新进入Nextcloud
再次进入Nextcloud网站,发现之前设置的都没有变化,升级前上传的文件也都还在。
在看一下目前版本和告警信息。
已经显示是17.0.0版本(目前最新是17.0.1),升级成功。存在的警告是之前就有的,是由于没有使用SSL证书,这个不影响使用。有时间申请了域名,再弄这个这个证书吧。
当然如果你是直接覆盖的话,会出现下图的错误。
一些文件没有通过完整性检查。了解如何解决该问题请查看我们的文档。(无效文件列表… / 重新扫描…)
这个只要找出点击无效文件列表,根据列表文件名,一个一个去删除,再重新扫描也能解决。不过可能文件太多,比较麻烦,建议直接按上面删除后再复制的方法,不用覆盖的文件方式操作。
4、docker安装下的nextcloud升级
之前上篇《将ubuntu设置为NAS——6. 私人网盘nextcloud安装(下)(docker下安装nextcloud)》,docker下安装的方法,我是将nextcloud相关文件夹挂载在docker外部文件夹(/docker/nextcloud目录),数据库(/docker/nextcloud/db目录),首先备份这2个文件夹相关的config、data文件夹和db文件夹。
这里我以17.0.0升级到17.0.1为例。
首先停止运行中容器,再进入docker-compose.yml中设置挂载在/docker/nextcloud
docker-compose stop
cd /docker/nextcloud
删除文件夹中除了data,db以外的文件(如果修改过config文件中config.php,请备份一下),切记先进入/docker/nextcloud正确的目录,再执行,防止删错了文件(血泪教训)
sudo cp /docker/nextcloud/config/config.php /home/yang/桌面
sudo rm -R !(data|db)
重新回到原来docker-compose.yml所在文件夹,或者按上篇介绍的重新编写docker-compose.yml,在它文件夹下运行用以下命令
cd /home/yang/桌面
docker-compose rm //需要按Y确认
docker-compose up -d
sudo cp /home/yang/桌面/config.php /docker/nextcloud/config
之后再打开对应nextcloud所在网址,查看设置就能看到升级成功,原来的图片文件还在。docker-compose.yml文件设置不用修改,由于设置拉取镜像都是拉取最新版,所以可以自动升级,也可以采用以下代码,手动拉取最新版本,再up。
cd /home/yang/桌面
docker-compose rm //需要按Y确认
docker-compose pull
docker-compose up -d
sudo cp /home/yang/桌面/config.php /docker/nextcloud/config
总结
本篇介绍了升级Nextcloud的方法,建议备份重要文件后再操作。当然你可能发现前面备份操作,其实后面没有用到,但以防万一吧。如果你重要数据都采用连接外部存储的方式,只要再升级后重新挂载,数据安全完全不用担心,之前有值友讨论中提到数据备份迁入迁出的问题,其实用外部存储的方式,完全不用担心,也能解决原来data文件夹数据盘空间的问题。
本篇在写docker下升级时,用官方介绍的方案,遇到了问题,升级后提示Internal Server Error无法打开nextcloud,研究很多天,终于发现得把挂载主机目录文件删除后(可保留data和db),再移除相关容器才行,尤其config文件夹也要删除,所以里面提到了备份config.php文件,因为可能之前我们修改过的。所以大家如果也遇到相同问题,可以参照我的操作方案,当然如果您有更好的方法,也请不吝赐教。
参考资料
官方文档:https://docs.nextcloud.com/server/17/admin_manual/maintenance/upgrade.html
官方docker文档:https://github.com/nextcloud/docker
叫兽_sk
校验提示文案
Blue_Kitty
校验提示文案
小杜小杜d
校验提示文案
杨某人
校验提示文案
杨某人
校验提示文案
小杜小杜d
校验提示文案
Blue_Kitty
校验提示文案
叫兽_sk
校验提示文案