社区主页 文章详情

将ubuntu设置为NAS——7. 私人网盘nextcloud升级

杨某人 19-11-17 关注

前言的前言

想通过本平台记录一些折腾小主机的过程,同时方便自己查阅,还能赚点金币,于是就有了这个小系列。之前写了6篇

我目前的主机外壳采用蜗牛星际外壳,主板是暴风酷播云华擎主板J3455,电源是暴风酷播云的台达电源,硬盘是一块固态硬盘,3块1T的机械硬盘,原蜗牛星际背板拆除,电源与数据线直接接硬盘的方式。软件层面主要是用Kubuntu18.04系统(ubuntu其他风味版,和原版功能上没有太大区别),安装了Transmission-daemon用于下载,nextcloud用于网络硬盘,kvm作为虚拟机开软路由,还有其他一些简单功能,基本实现NAS的作用。后面我将慢慢分享其中的过程,作为小白,很多都是自己参考网上根据其他作者文章,再自己摸索实践出来,如有谬误,请各位指正,大家共同学习。后面涉及的命令行都是在ubuntu终端(不要问我终端是什么 )中输入,请大家注意。

正式的前言

Nextcloud软件版本更新还是比较频繁,虽然使用旧版也一般不会遇到太大的问题,但抱着更愿意使用新版本,新版本性能或功能会更强的想法,还是升级一下新版。如何升级呢?重装?如果一出新版软件,我们就重新安装一遍,这样很不利于数据的安全。虽然重要数据一般我会以外部存储方式处理(此方法中篇已经介绍),但总该有保证全部数据安全的方式进行升级的方案吧。一个重要的建议和提示:升级操作前,请对重要数据进行备份!!!

1、Nextcloud自带升级方式

其实软件本身是再带升级功能的。

nextcloud再带升级功能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下面

将ubuntu设置为NAS——7. 私人网盘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,也可以直接在里面操作,鼠标复制粘贴,也很简单。

SFTP 上传文件SFTP 上传文件


改回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网站,发现之前设置的都没有变化,升级前上传的文件也都还在。

重新进入Nextcloud重新进入Nextcloud

在看一下目前版本和告警信息。

之前升级17.0.0的界面之前升级17.0.0的界面

已经显示是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为例。

Nextcloud 17.0.0Nextcloud 17.0.0

在旧版nextcloud上传文件作为见证在旧版nextcloud上传文件作为见证

首先停止运行中容器,再进入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



展开阅读全文

打开App,查看更多好文内容
全部评论 (7)
杨某人
0
01-29 18:27

/nextcloud/config 这里设置文件里看看有没有相关设置,我用上篇docker-compose文件安装没有这个限制

叶小枫
0
01-29 12:57

有个问题,就是只能下载10M以内的文件,上传不限制,怎么解决?

Blue_Kitty
0
01-10 14:46
Blue_Kitty: 我迁移的时候也碰到内部错误了[不高兴]按你这个方法看看。现在折腾迁移的办法。现在网上的教程绝大多数都是搭建,少量优化,完全没有备份迁移的[大囧]碎银子全部打赏了。回头再来交流 1
折纸K: 迁移需要修改apache2的设置信息,建议使用linux面板进行设置,我头一次手动设置调了好几个文件才成功,后来用面板一次就行了[喜极而泣]我现在用的ubuntu server +webmin +apache2+php7.0+mysql ,myadmin省掉了,面板能代替myadmin[脸红] 2

docker搞清楚权限,就弄好了。docker确实方便很多

折纸K
0
01-10 14:15
Blue_Kitty: 我迁移的时候也碰到内部错误了[不高兴]按你这个方法看看。现在折腾迁移的办法。现在网上的教程绝大多数都是搭建,少量优化,完全没有备份迁移的[大囧]碎银子全部打赏了。回头再来交流 1

迁移需要修改apache2的设置信息,建议使用linux面板进行设置,我头一次手动设置调了好几个文件才成功,后来用面板一次就行了[喜极而泣]我现在用的ubuntu server +webmin +apache2+php7.0+mysql ,myadmin省掉了,面板能代替myadmin[脸红]

Blue_Kitty
0
2019-12-29

我迁移的时候也碰到内部错误了[不高兴]按你这个方法看看。现在折腾迁移的办法。现在网上的教程绝大多数都是搭建,少量优化,完全没有备份迁移的[大囧]碎银子全部打赏了。回头再来交流

打开App,查看更多好文和评论
猜你喜欢
编辑精选
相关商品推荐
7
58
7
你已经点过赞了
新浪微博 QQ空间 微信好友 豆瓣
当前为触屏版
热门搜索