Are you still struggling with this?
I run Nextcloud on a shared server (on Dreamhost) and it can be a bit frustrating but not as frustrating as maintaining my own server!
I cannot run the upgrader from the browser, and I think many other users on shared web hosts have similar experiences. It has been so long now that I don’t remember the specific permissions issue, but a lot of web hosting providers have security settings that make it difficult to run an update entirely from the browser interface.
Are you able to SSH in to your web hosting account? Or are you only using FTP? You will need SSH to upgrade. The first thing to do is figure out whether your webhost provides at least command line PHP in depricated versions. On Dreamhost, I would use the command
php-7.4 occ upgrade to make sure I was running PHP 7.4 if I need it. That is documented at:
You may have to connect with your webhost but I bet they have something similar.
The other brain bender (at least for me, as someone who has also gotten four or five major releases behind) is that you have to upgrade to the highest point release for the major release that you’re on, and then upgrade one major release at a time. So if you were at Version 19.0.4, you would need to update to 19.0.13 (the highest point release in V 19 – I just look at Index of /server/releases to see that), and then from 19.0.13 you can upgrade to 20.0.14 (the highest point release in v 20) and then to 22.2.10 → 23.0.x → 24.0.x → 25.0.x.
I typically copy my nextcloud directory over to something named for the version, and leave the last Zip in my home directory so I can orient myself easily. Currently it looks like this:
drwxr-xr-x 15 abh pg140705 4.0K Mar 9 17:38 nextcloud
drwxr-xr-x 15 abh pg140705 4.0K Feb 14 14:02 nextcloud-25.0.3
-rw-r--r-- 1 abh pg140705 172M Feb 23 02:34 nextcloud-25.0.4.zip
So last time I updated, I turned maintenance mode on (by running
php-8.0 occ maintenance:mode --on from within my nextcloud directory), moved the whole “nextcloud” folder to “nextcloud-25.0.3” and unzipped “nextcloud-25.0.4.zip” which created a new “nextcloud” folder. Then I followed the instructions for copying over my config.php and data files as well as the apps I need (You can use
grep "Only in" to get a list of apps that are in your old instance but not the new instance.)
Then I use
php occ upgrade (or, if I need a specific version because the upgrader is balking,
php-7.4 occ upgrade or
php-8.0 upgrade) to upgrade.
It is a little exasperating to have to cycle through four or five upgrades to get current, but it can be done.