Nach PHP-Aktualisierung auf 8.0.29 kein Zugriff möglich. NC lässt sich auch nicht aktualisieren

Hallo,

ich habe eine Nextcloud 20.0.14 installiert. Die PHP-Version ist 7.4.33. Wenn ich über die Konfigurationsseite meines Anbieters (PLESK) ein PHP-Update auf 8.0.29 vornehme, wird dies zwar gemacht, dann kann ich mich aber nicht mehr auf meine Nextcloud einloggen.
In diesem Fall erscheint die Fehlermeldung:

This version of Nextcloud is not compatible with > PHP 7.4.
You are currently running 8.0.29

Wenn ich hingegen versuche über den Updater ein Update meiner Nextcloud von 20.0.14 auf 21.0.9 zu vollziehen, hängt sich der Updater bei Punkt 5 auf und gibt folgende Dauermeldung:

Step 5 is currently in process. Please reload this page later.

Diese Meldung hängt jetzt seit 10 Tagen drin und es tut sich nichts mehr.

Die Nextcloud wurde von meinem Provider auf Wunsch automatisch bereitgestellt und ich hatte immer über PLESK PHP-Aktualisierungen und über den Updater direkt auf der Nextcloud die NC-Aktualisierungen vorgenommen. Jetzt klappt beides nicht mehr.

Was kann ich tun? Was braucht ihr evtl. an zusätzlichen Infos?
Ich habe keine PHP-Kenntnisse, kann aber - wenn es nicht zu umständlich gerät - auch mal einen Editor bedienen, falls dies erforderlich sein sollte.

Gruß
Michael


Hier sind noch ein paar Infos, die ich aus der Übersichtsseite meiner Nextcloud entnehmen konnte:

Es gibt einige Warnungen bei Deiner Systemkonfiguration.

  • Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.

  • MySQL wird als Datenxbank verwendet, unterstützt jedoch keine 4-Byte-Zeichen. Um beispielsweise 4-Byte-Zeichen (wie Emojis) ohne Probleme mit Dateinamen oder Kommentaren verarbeiten zu können, wird empfohlen, die 4-Byte-Unterstützung in MySQL zu aktivieren. Für weitere Details lesen bitte [die Dokumentationsseite hierzu].

  • Das alte serverseitige Verschlüsselungsformat ist aktiviert. Wir empfehlen, es zu deaktivieren. Für weitere Einzelheiten sehe bitte in die [Dokumentation]

  • Der HTTP-Header “Strict-Transport-Security” ist nicht auf mindestens 15552000 Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den [Sicherheitshinweisen] erläutert ist.

  • Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen findest Du in der [Dokumentation].

  • In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von “occ db:add-missing-indices” können die fehlenden Indizes manuell hinzugefügt werden, während die Instanz weiter läuft. Nachdem die Indizes hinzugefügt wurden, sind Anfragen auf die Tabellen normalerweise schneller.

    • Fehlender Index “cards_abiduri” in der Tabelle “oc_cards”.
    • Fehlender Index “calendarobject_calid_index” in der Tabelle “oc_calendarobjects_props”.
    • Fehlender Index “schedulobj_principuri_index” in der Tabelle “oc_schedulingobjects”.
    • Fehlender Index “properties_path_index” in der Tabelle “oc_properties”.
  • In der Datenbank fehlen einige Primärschlüssel. Aufgrund der Tatsache, dass das Hinzufügen von Primärschlüsseln bei großen Tabellen einige Zeit dauern konnte, wurden sie nicht automatisch hinzugefügt. Durch Ausführen von “occ db:add-missing-primary-keys” können diese fehlenden Primärschlüssel manuell hinzugefügt werden, während die Instanz weiter läuft.

    • Fehlender Primärschlüssel auf Tabelle “oc_federated_reshares”.
    • Fehlender Primärschlüssel auf Tabelle “oc_systemtag_object_mapping”.
    • Fehlender Primärschlüssel auf Tabelle “oc_comments_read_markers”.
    • Fehlender Primärschlüssel auf Tabelle “oc_collres_resources”.
    • Fehlender Primärschlüssel auf Tabelle “oc_collres_accesscache”.
    • Fehlender Primärschlüssel auf Tabelle “oc_filecache_extended”.
  • In der Datenbank fehlen einige optionale Spalten. Da das Hinzufügen von Spalten bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch hinzugefügt, wenn sie optional sein können. Durch Ausführen von “occ db:add-missing-columns” können diese fehlenden Spalten manuell hinzugefügt werden, während die Instanz weiter läuft. Sobald die Spalten hinzugefügt sind, könnten einige Funktionen die Reaktionsfähigkeit oder die Benutzerfreundlichkeit verbessern.

    • Fehlende optionale Spalte “reference_id” in der Tabelle “oc_comments”.
  • Einige Spalten in der Datenbank können zu big int konvertiert werden. Das Ändern von Spaltentypen kann bei großen Tabellen einige Zeit dauern. Deshalb muss die Konvertierung manuell durch den Befehl “occ db:convert-filecache-bigint” gestartet werden. Zur Konvertierung muss die Instanz offline sein. Einzelheiten dazu [auf der zugehörigen Dokumentationsseite].

    • federated_reshares.share_id
    • filecache_extended.fileid
    • mounts.storage_id
    • mounts.root_id
    • mounts.mount_id
    • share_external.id
    • share_external.parent

Also du solltest nur PHP Versionen nutzen, die von der jeweiligen NC Version unterstützt werden (System requirements — Nextcloud latest Administration Manual latest documentation). Also für php 8.0 brauchst du mindestens NC 21. Soweit so gut.

Solche Limits werden nicht ohne Grund angegeben. Gerade bei Updates wird gerne etwas an der Datenbankstruktur verändert, das braucht ggf. Resourcen. Auch all deine Datenbank-Warnungen machen Aktionen an der Datenbank tendentiell langsamer. Die Links wie man das löst stehen oft nebendran, da ist es hilfreich wenn man über ein SSH-Terminal Zugriff hat und so direkt Befehle ausführen kann (keine Timeouts). Ich weiss nicht ob das bei deinem Anbieter geht.

Mit den Update Problemen kann das unter Umständen schon weiterhelfen:

Update vom SSH Terminal:

(falls du dich schon als der Nutzer anmeldest, dem die Scripte gehören, dann kannst du das sudo -u username weglassen)

Danke für die sehr schnelle Antwort. :slightly_smiling_face:

Bei der Erstrecherche hatte ich auch ähnliche Dinge gelesen (was das Speicherlimit) angeht. Unglücklicherweise erlaubt mir meine Konfigurationsseite nur max. 128M. Manuell ist keine höhere Eingabe möglich.

Gibt es hier einen Tipp dazu, oder lautet der Ratschlag, dass ich mich wohl besser an den Hoster wende? Das Letztere ist irgendwie meine Befürchtung.

Gruß
Michael

(Wo kann ich auf das Terminal zurückgreifen? Ich hatte bisher nie manuell etwas gemacht. Habe vor einigen Jahren ein bisschen Erfahrung mit der Linux-Shell gesammelt und möchte aber nicht allzuviel herumeditieren, falls es sich vermeiden lassen würde.)
Nachtrag: Hab die Shell soeben in Plesk entdeckt. Also ein Problem weniger.

Theoretisch kannst du sowas bei dir lokal auf einen Vserver umziehen, das Update durchführen und dann wieder zurück migrieren. Bei der neuen Version kann dir aber keiner sagen ob das noch funktioniert und bei jedem Problem könnte der fehlende Speicher das Problem sein. Vor allem wenn du Nextcloud wirklich nutzen willst, führt an einer anderen Umgebung nichts vorbei.

Gehostete Umgebungen, sogar mit mehr Speicher, können mitunter relativ schwer zu warten sein. Ich würde entweder auf eine System umsteigen, wo du mehr Kontrolle hast (virtueller Server, oder lokal ein alter Rechner, NUC, Raspberry etc). Allerdings musst du dich dann etwas mehr mit Linux und der Administration beschäftigen. Das ist kein Hexenwerk, aber es braucht halt Zeit (man lernt auch was dabei).

Falls du die Zeit und Motivation nicht hast, würde ich eher schauen, welcher Hoster dir direkt ein Nextcloud-Hosting anbietet und der dann die Administration übernimmt. Dann bist du nur Anwender. Dem Hoster traust du im Zweifel etwas mehr über den Weg als den Googles und Microsofts.

Ich kenne Plesk nicht genau, es scheint prinzipiell zu gehen, aber ggf. gibt es die Option nur bei einigen Hostern oder nur einigen Tarifen.

Als abschließende Information zu meinem Thema, das ich im Juli gestartet hatte:

Habe meinen Hoster gebeten, die Nextcloud für mich zu aktualisieren, da ich nicht weitergekommen bin. Als Antwort kam eine (etwas genervt klingende) E-Mail, das er eh üblicherweise Nextcloud nicht unterstützt und mir damals, weil’s mein Wunsch war, Nextcloud mit auf meinen Webspace neben der Webseite installiert hat. Er gibt aber sonst keine Support.

Bin jetzt bei IONOS gelandet, die fertige NC-Installationen anbieten und alle Updates von sich aus durchführen. Der Nachteil ist halt, dass die vollen Konfigurationsmöglichkeiten für den Endnutzer
nicht gegegeben sind. Die halten selbst die Hand drauf, um alles immer stabil und sauber zu halten (verständlich). Wenn man, so wie ich keine Zeit hat, sich in die Feinheiten der NC-Administration einzuarbeiten, reicht es auch vorerst - und es ist sehr preisgünstig.

Deine alte Nextcloud war auch hoffnungslos veraltet. Dir fehlten die letzten sieben Versionen der letzten drei bis vier Jahre. Leider ist sowas zu erwarten, wenn weder du noch dein Hoster die Updates regelmäßig durchführt. Dass das alte PHP 7.4 irgendwann sowohl vom OS als auch Nextcloud nicht mehr unterstützt wird, war längst bekannt.

Am Ende war es nur dein Fehler und nicht der Fehler von deinem alten Hoster.