So my Debian 9 server was still running Nextcloud 15. Meanwhile Nextcloud 20 is out.
When I looked at performing the (manual) update I actually found a Nextcloud 16 download already in place but it seems I never completed that. Not long afterwards I discovered why – Nextcloud 16 requires PHP 7.3, but Debian 9 only has PHP 7.0 available.
Long story short, instead of chimera’ing my Debian install I bit the bullet and decided to finally upgrade the server to Debian 10…
Some time later…
After the server upgrade completed I was able to use the Nextcloud web interface to upgrade to Nextcloud 16.. and 17… and 18… and 19… and 20!
That’s were the fun stopped, many things were broken in NC20 (apps just showing blank pages), so, having taken a backup between every upgrade, I rolled back to NC19 (incidentally validating that my backups worked).
Most things worked out of the box. Critically for me, Grauphel did not.
Long story short, it turns out that on Debian 10, the version of the PHP OAuth package is actually not compatible with the installed version of PHP 7.3! Installing a binary-compatible package from the Debian package snapshots site fixed this.
Amongst other things I did during the upgrade cycles was:
- changed the database to 4-byte suppport allowing for more characters in paths and comments.
- fixed several other minor PHP configuration issues which Nextcloud was warning about.
- fixed support for Maps (Nextcloud bug in the upgrade scripts left some database columns misconfigured:
Column name "oc_maps_address_geo"."object_uri" is NotNull, but has empty string or null as default.
- The fix was to manually edit the scripts.
- wrote backup scripts backing up the Nextcloud directory, the database, and, optionally, the data directory.