近日 nextcloud更新到了25.0.2
根据官方的更新版本来看 大版本的0.2版本是一个生产推荐版本

本站也是一直使用的nextcloud作为本站的资源存储云,于是乎 更新

环境

php 7.0
debian 9.5
nextcloud 14.0.3

在这之前

先解决一个之前的遗留小bug
发现nextcloud的日志一直在报错 每秒两个..

You are using a fallback implementation of the intl extension. Installing the native one is highly recommended instead. at /usr/share/nginx/nextcloud/3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/intl.php#18

需要安装一个拓展

apt install php7.0-intl

# 重启fpm进程
service php7.0-fpm restart

再回到控制面板 日志已经不在刷这个ERROR了 ok 解决

开始更新

其实更新是傻瓜化的 只需要点更新就完事了
但是么 总会遇到点问题的 否则就不会有这个文章了 (滑稽

多余的文件

在下载更新之前 nextcloud会检查工作目录下的文件 并报告出不是nextcloud的文件 然后停止更新

由于之前验证域名 放了一个fileauth.txt文件,然而nextcloud并不喜欢这个文件。

解决办法:rm -f fileauth.txt

对 删掉就完事了,重命名是无用的。如果很重要的话就先移动到别的目录,然后等待升级完成之后再移动回来,nextcloud在运行时不会报告目录中多余的东西。

ok 更新完成

更新之后

开始解决问题了

大版本更新一定会有很多东西改动 所以你可以在控制面板那里看到一些安全性的建议

ok 我们一个一个解决 有一些建议是中文的 你可以直接按照它建议的方式处理就 ok

数据库丢失了一些索引

解决:

sudo -u www-data php occ db:add-missing-indices

长整形转换

解决:

sudo -u www-data php occ db:convert-filecache-bigint

总结

官方给的命令都是occ xxxxx

但实际上不能直接这么运行

你需要其他的组件一起配合才行

  • php
  • sudo

sudo是需要的 因为需要借助其他用户来执行这些操作 但是又不能直接su切换

php 是执行环境 这是必要条件 ok 我们都有

最终 我们只需要在occ前面加上 sudo -u www-data php 即可