Wie Nextcloud 16 updaten

Hallo Profis!
Ich bin ein bisschen ratlos: Ich habe eine Nextcloud - leider schon länger nicht geupdated - in der Version 16 irgendwas. Nun hat mein Hoster die PHP-Version auf mindestens 7.4 hoch gezogen. Damit läuft die 16er nicht und auch ein manuelle Update auf die 17er scheint nicht möglich.
Beim Update wird mir angezeigt, dass die php-Version nicht höher als 7.3 sein darf.

Was kann ich tun?
Die php-Version kann ich nicht nach unten drehen. 7.4 ist Minimum.
Kann ich direkt auf eine höhere Version updaten?
Oder wie kann ich das Problem in den Griff bekommen?

Für sachdienliche Hinweise danke ich sehr!

Eine Nextcloud enthält Dateien (die (zum Glück) einfach in der Dateistruktur rumliegen) sowie auch weitere Informationen, die in der Datenbank (meist MariaDB) gespeichert werden. Hierzu gehören z. B. Benutzername, E-Mail, Daten von Anwendungen wie Deck aber auch alle gesharten Links usw.

Wenn es dir primär um die Daten geht und du alles neu bauen kannst (Benutzeranlage, Informationen in Apps, alle Links neu machen usw.) so kannst du einfach die Daten aus der Cloud sichern (/pfad/zur/nextcloud/data/username, sichere aber alles und dump die Datenbank) und in eine vollkommen neue Nextcloud wieder importieren (nur die Daten je Anwender). Wie das geht erfährst du auf Rückfrage. Du musst auch dann noch z. B. php occ files:scan --all ausführen).

Ich gehe mal davon aus, dass du einen Webhoster hast. Vielleicht wäre es sinnvoller für Nextcloud eine Managed Nextcloud zu besorgen. Dann kümmern sich andere Personen um deine Nextcloud. Diese gibt es teilweise bis 10 GB kostenlos (mit gewissen Einschränkungen). Vielleicht dir dein aktueller Hoster auch eine Managed Nextcloud. 500 GB bis 1 TB kosten aktuell vielleicht 5 Euro im Monat.

Vom Upgrade rate ich ab. Du musst alle Zwischenversionen mit installieren. Da die PHP-Version wohl nicht mehr unterstützt wird, müsstest du wahrscheinlich dein altes System backupen, Datenbank dumpen, lokal auf ein Testsystem (alte Version) installieren, dort mit den korrekten Softwareversionen (inkl. PHP) von Nextcloud 16 über 17, 18, 19, 20, 21, 22, 23 zu 24 upgraden und dann könntest du es wieder dort hochladen.

Vielen Dank für die schnelle Antwort.
Ja, die Daten sind am wichtigsten und vor allem der Passwort-Tresor.
Schön wäre natürlich, wenn die Einstellungen auch noch da wären.
Welche Version (niedrigste) ist den php 7.4 fähig?

Oder kann man in nextcloud die php-Versionsprüfung irgendwie unterbinden?
Denn so groß dürfte der Versionssprung von einer funktionierenden 7.3 zu einer 7.4 Version ja eigentlich nicht sein.
Edit: habe hier eine Möglichkeit gefunden, scheint für 17 zu funktionieren laut Artikel:

Oder lässt sich das DB-Uptade aus den einzelnen Versionen extrahieren?
Dann müsste die Datenbank doch auch zu einer neueren Version passen.

Oder ist das alles zu einfach gedacht?

Vielleicht. Aber das kann natürlich zu Fehlern führen, die du nie wieder beheben kannst. Ich gehe davon aus, dass du vorher ein Backup machst.

Ich habe nicht ganz verstanden, was du meinst. Aber jede Nextcloud-Version ist für spezielle PHP- und z. B. MariaDB-Versionen freigegeben. Vielleichst hast du Glück und du schaffst den Upgrade zu Nextcloud 17 irgendwie. Aber wie gesagt du musst noch ziemlich viele Versionen durchziehen. Ich weiß auch nicht wie einfach/schwierig das ist, da diese ja gar nicht mehr supportet werden. Aber du kannst es ja ausprobieren. Denn das übt.

Vielen Dank für Deine Unterstützung.

Mit dem letzten Absatz meinte ich, dass - so stelle ich es mir zumindest laienhaft vor - das Problem ja nicht die Dateien sind, die tauscht man ja bei einer manuellen Installation komplett aus, sondern nur die fehlenden “Updates” an der Datenbank.
Die man aus dem restlichen Updateprozess ja herauslösen könnte und direkt in der Datenbank ausführen könnte. – Soweit meine Laiensicht :slight_smile:

Ich habe jetzt einfach mal den gefundenen Tipp probiert. Eine 17er Version entpackt, die config.php kopiert und die versionscheck.php angepasst, wie im Link beschrieben.
Was soll ich sagen, es scheint tatsächlich geklappt zu haben. Meine nextcloud ist wieder per Internet erreichbar und es scheint auch alles zu funktionieren.
Ich werde noch ein bisschen testen und dann weiter updaten, bis ich bei einer einigermaßen aktuellen Version bin :wink:

Natürlich führt aktuell der Integritätscheck zu einem Fehler wegen der “gepatchten” Datei, aber sonst sieht alles wie gewohnt aus.

Results
=======
- core
	- INVALID_HASH
		- lib/versioncheck.php

Also Ende gut - alles gut (hoffentlich)

1 Like

Dan bleibe jetzt aber bitte nicht auf 17, sondern update mindestens bis 22, am besten gleich bis 24, denn 1.) Ist nicht garantiert, dass das jederzeit so wieder funktioniert, zumindest nicht ohne Probleme und 2.) erhält 17 keine Sicherheitsupdaes mehr. Die älteste noch supportete Version ist 22.

Ja. Das hatte ich ja oben schon geschrieben.
Aktuell bin ich bei 20, aber jetzt wird mir ein kleiner Fehler angezeigt:
PHP configuration option output_buffering must be disabled
Mal sehen, was ich damit mache, kann man den ignorieren?

Ich habe mal die Lösung rausgesucht. Fehler sollte man immer beheben.

Wahrscheinlich in .htaccess eintragen:
php_flag output_buffering Off

For the record, the answer is to use proper php syntax in .htaccess:
php_flag output_buffering Off
instead of php_value output_buffering Off

False "output_buffering must be disabled" warning

Ja, klar. Das hatte ich ja schon geschrieben :wink:
Es war auch nicht geplant, dass das so läuft. Aber irgendwie vergisst man es oder schiebt es auf…
Ich bin daher ein großer Fan von Long Term Versionen :smiley:

Komisch, das mit der EMail-Antwort scheint nicht so zu klappen - na egal…

Ich habe mal in den .htaccess-Dateien geschaut.
ein php_flag output_buffering Off bzw. php_value output_buffering Off
gibt es so direkt und exakt nicht.
Folgendes habe ich gefunden: php_value output_buffering 0
sollt das dann zu php_flag output_buffering Off geändert werden?

@antilet
Eher nein. Einfach die Zeile zusätzlich eintragen hätte ich vermutet.

Ich weiß im übrigen nicht, ob du folgenden Befehl ausführen musst. Ich weiß nicht, ob damit deine .htaccess zur Kenntnis genommen wird oder umgekehrt die .htaccess neu geschrieben wird. Vielleicht weiß jemand mehr. Aber ausführen des Befehls sollte nicht schaden. :wink:

sudo -u www-data php occ maintenance:update:htaccess

Dokumentation

Vielen Dank für deine schnelle Antwort.
So scheint es nicht zu funktionieren.
Ich habe jetzt beide Wege probiert, der “Fehler” wird weiter angezeigt bzw. führt zu einem Fehler und nix geht mehr.
sudo -u www-data php occ maintenance:update:htaccess setzt übrigens die .htaccess wieder zurück, so dass die selbst gemachten Änderungen wieder weg sind.

Edit:
Ich habe die Lösung gefunden. Ich betreibe meine Nextcloud bei Uberspace.de, da gibt es eine Doku für die Nextcloud, wo beschrieben ist, wie man das Problem behebt.
Damit konnte ich gleich noch ein anderes Problem mit lösen (apc.enable_cli=1)

Vielen Dank nochmal für die Unterstützung!

1 Like