In case you also come into this great situation "I upgraded my Ubuntu to 16.04 LTS and suddenly my owncloud installation is a mess", don’t panic. I’m about to share my mess with you so you can pick the perils.
It all started with Ubuntu 14.04LTS an innocent
do-release-upgrade … which didn’t want to be aborted - twice. So it convinced to "yes, ok, let’s do it now…". After the normal upgrade process and a reboot my system was back and working fine - I thought, until I noticed mails from my monitoring system, that the owncloud webUI wasn’t available.
A quick check confirmed "yes, the webUI is not available". And even after the hard part of fixing the nginx configuration - yes, I’m running owncloud behind nginx - and manually installing php7.0-fpm - did I mention Ubuntu 16.04 replaced php5 with php7 EXCEPT FOR THE FPM PART?! -, all websites worked, but Owncloud wouldn’t!
Taking a very close look into nginx error.log and I suddenly noticed that the index.php was missing from /var/www/owncloud! In fact, it seems during the Ubuntu Upgrade process for an unreproducible reason all .php files in /var/www/owncloud got deleted! But hey, no worries, let’s
apt-get install --reinstall! I double checked that my sources list was correctly pointing to owncloud stable for Ubuntu 16.04 (see https://download.owncloud.org/download/repositories/stable/owncloud/) and
apt-get installed owncloud 9.1.3 on my machine without mentioning any problems.
Unfortunately my monitoring system was still unhappy. "Ah, of course, the 'manual upgrade' process", I thought, and ran
sudo -u www-data /var/www/owncloud/occ upgrade only to get this wonderful output:
ownCloud or one of the apps require upgrade - only a limited number of commands are available You may use your browser or the occ upgrade command to do the upgrade Set log level to debug Exception: Updates between multiple major versions and downgrades are unsupported. Update failed Maintenance mode is kept active Reset log level
When I opened the webUI, it showed the same error message. But additionally it included a link to the immensely helpful https://central.owncloud.org/t/updates-between-multiple-major-versions-are-unsupported/815 which pointed out that I had indeed jumped from Owncloud 8 directly to Owncloud 10 - I skipped the 9.0 version!
Ok, let’s cut this short: It occurred to me that the owncloud team has no (documented) support for such a situation - at least I don’t consider https://doc.owncloud.org/server/9.0/admin_manual/maintenance/package_upgrade.html#upgrading-across-skipped-releases helpful at all! I assume your next step was also to downgrade owncloud to the next minor version of your current release and by trying this, you jumped into the next fun situation: the
owncloud-server package has a dependency on PHP5! IF SOMEONE CAN TELL ME WHY THIS IS CONSIDERED REASONABLE, I’M REALLY CURIOUS?
Searching the web for others with the same problem
Anyway after reading through http://askubuntu.com/questions/762221/ubuntu-16-04-upgrade-killed-owncloud-and-many-other-things-but-right-now-i-n I finally came to this post http://askubuntu.com/questions/767158/ubuntu-16-04-cannot-install-owncloud-server which has a very interesting hint: The
owncloud-files package has almost no depencies, is thus easy to downgrade and includes the updater! WOOHOO, JACKPOT!
So, I started by modifying my
/etc/apt/sources.list.d/owncloud.list to Ubuntu 8.2
sh -c "echo 'deb http://download.owncloud.org/download/repositories/8.2/Ubuntu_16.10/ /' > /etc/apt/sources.list.d/owncloud.list"
and then forcing the downgrade and step-by-step upgrade by running
$ sudo apt-get update && sudo apt-get install owncloud-files=8.2.9-1.1 (...) $ sudo -u www-data /var/www/owncloud/occ upgrade (...) $ sh -c "echo 'deb http://download.owncloud.org/download/repositories/9.0/Ubuntu_16.10/ /' > /etc/apt/sources.list.d/owncloud.list" $ sudo apt-get update && sudo apt-get upgrade (...) $ sudo -u www-data /var/www/owncloud/occ upgrade (...) $ sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Ubuntu_16.10/ /' > /etc/apt/sources.list.d/owncloud.list" $ sudo apt-get update && sudo apt-get upgrade (...) $ sudo -u www-data /var/www/owncloud/occ upgrade (...)
It took a while but worked pretty well. So in the end I’d like to thank John Orion for sharing his idea about
owncloud-files and the owncloud team for providing this option - even though you don’t mention it on the pages where people are seeking for help. I hope this is helpful for others, struggling with upgrades.
Summary and remaining issues
Now I’m on to fix the remaining issues: Currently I’m facing a situation where all requests with
index.php are returned with a HTTP302 redirect without
index.php - which of course fails (e.g.
/cloud/index.php/login is redirected to
/cloud/login). NOTE: I’m running owncloud behind nginx with a contextroot other than
/owncloud - as if I was asking for trouble, right? I’ll update this blog, in case I stumble upon something.
If you find anything to comment, optimize or fix about this, please leave me a github issue. Always think "If I have this issue, someone else might sooner or later have it, too" - and you can help that someone. Thanks a lot!