Nach Systemupdate lÀuft Nextcloud nicht mehr

Hallo,
ich bin neu hier, obwohl ich schon lÀngere Zeit Nextcloud nutze.
Bevor ich meine Frage formuliere erst einmal meine Konfiguration:

  • RPi4 4GB
  • SSD statt Speicherkarte
  • apache2 2.4.38
  • php8.0
  • MariaDB
  • Nextcloud 22.2.3
  • redis

Im November habe ich meine Nextcloud von php7.3 auf php 8.0 umgestellt. Seit dem lief NC völlig problemlos. Heute habe ich ein Systemupdate durchgefĂŒhrt. Danach kam NC nicht mehr hoch. Es kommt folgende Fehlermeldung:
I>

Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.

Diesen Fehler hatte ich auch, als ich von php7.3 auf php8.0 umgestellt habe. Das Problem war damals, dass redis nicht in Version 8.0 installiert war. Nach der Installation des Packetes funktionierte meine NC wieder.

Ich habe folgendes versucht:

  1. Wenn ich die php-Version abfrage, wird 8.1 angezeigt. Danach habe ich apache auf 8.1 umgestellt. Leider wird dann angezeigt, dass NC nicht mit php 8.1 lĂ€uft. Also wieder zurĂŒck.
  2. Dann habe ich den Status von redis abgefragt. Das Ergebnis ist “running” . Trotzdem habe ich redis noch einmal installiert; ohne Erfolg.

Nach allen Aktionen habe ich apache neu gestartet. Neu gebootet habe ich auch schon mehrfach.

Nun weiß ich nicht weiter und hoffe auf UnterstĂŒtzung.

Gruß
Apollon

ZurĂŒck auf welche Version?

Ist das php-redis Paket in der richtigen Version instlliert?

Du hast grundsÀtlich folgende Möglichkeiten PHP-Pakete zu installieren:

PHP Pakete der Distribution nutzen ohne Drittquellen:

Debian 10: apt install php-redis → v7.3
Debian 11: apt install php-redis → v7.4

PHP Pakete mit Drittquellen nutzen:

apt install php-redis → v8.1
apt install php8.0-redis → v8.0
apt install php7.4-redis → v7.4
etc


Wenn du Drittquellen nutzt musst du explizit eine bestimmte Version installieren, ansonsten wird immer die neuste genommen und dann natĂŒrlich auch darauf aktualisiert, wenn eine neuere verfĂŒgbar wird.

Hast du den Upstream PHP-Handler der nginx Konfiguration angepasst, wenn eine neue Version von PHP-FPM installiert wurde?

Was sagen denn die Logs von Nextcloud, nginx usw ?

Hallo @Apollon
und willkommen im Benutzerforum von NC.

DAS hast du wunderbar gemacht! Allerdings


wird nicht ganz klar, welches System? Das Betriebssystem? - Wenn ja, WELCHES denn, denn auch auf dem Raspi laufen mehrere davon


Das könnte der Kasus Knacksus sein, denn bisher lÀuft keine NC-Version mit 8.1+

Erst einmal vielen Dank fĂŒr die rege Teilnahme.

  • Auf dem RPi lĂ€uft Buster.
  • Installiert und noch einmal darĂŒber installiert habe ich php8.0-redis
  • nginx habe ich nicht sondern apache 2 in der Version 2.4.38
  • Mit Systemupdate meine ich apt update und apt upgrade

Als ich die php-Version abgerufen habe und mir 8.1 angezeigt wurde, bin ich auch davon ausgegangen, dass hier das Problem liegt. Daher habe ich php8.1 aktiviert. Aber 8.1 funktioniert nicht mit NC Daher habe ich wieder 8.0 aktiviert.
Wie komme ich zurĂŒck auf 8.0?

php8.1 deaktivieren und php8.0 aktivieren:

a2dismod php8.1
a2enmod php8.0

Falls du PHP FPM nutzt:

a2dismod php8.1-fpm
a2dismod php8.1
a2dismod php8.0
a2dismod mpm_prefork
a2enmod proxy_fcgi setenvif mpm_event
systemctl restart apache2
a2enconf php8.0-fpm
systemctl restart apache2 && systemctl restart php8.0-fpm

Oder du kannst auch PHP komplett deinstallieren apt remove php* oder apt purge php* (Achtung! Der zweite Befehl löscht auch die Konfigurationsdateien) und dann alle Pakete in der richtigen Version wieder installieren. Wenn du deine Installations- und Konfigurationsschritte dokumentiert hast, sollte das eine Sache von Minuten sein.

Das habe ich schon im ersten Aufschlag gemacht.
Aber php -version zeigt trotzdem immer die Version 8.1.2 an.
FPM habe ich nicht installiert.
Die Deinstallation schreckt mich ein wenig ab, weil ich bei der Erstinstallation viele Änderungen an diversen Einstellungen vorgenommen habe, damit NC so lief wie bis gestern.

Das ist der Grund warum ich alle KofigurationsÀnderungen dokumentiert habe. Dann kann ich nur Copy&Paste machen im Falle eines Falles. Aber du könntest ja zumindest mal PHP8.1 deinstallieren: apt remove php8.1* Und dann alle benötigeten Pakete zur Sicherheit nochmal in Version 8.0 installieren. Ich habe folgende Pakete installiert:

apt install -y libapache2-mod-php8.0 php8.0-{fpm,gd,mysql,curl,xml,zip,intl,mbstring,bz2,ldap,apcu,bcmath,gmp,imagick,igbinary,redis,smbclient,cli,common,opcache,readline,imagick,redis}

fpm kannst du weglassen, wenn du prefork verwendest. ldap, smbclient kannst du allenfalls auch weglassen, falls du die entsprechenden Funktionen in der Nextcloud nicht brauchst.

Btw. wenn du fĂŒr eine allfĂ€llige Deinstallation apt remove verwendest, werden die Config Files nicht gelöscht.

Ich bin wieder “an der Sonne”.
Vielen Dank fĂŒr die Hilfe.

Zuerst habe ich nur php8.1 deinstalliert. Daraufhin wurde mir auch die Version 8.0.15 angezeigt. Jedoch wurde NC nicht gestartet.
Daraufhin habe ich die Installation von php8.0 durchgefĂŒhrt. FPM habe ich weggelassen. Eine ganze Reihe von Paketen waren bereits installiert. Einige, von denen ich es wusste, wie z.B. smbclient waren nicht installiert.

Ein Paket, das nicht installiert war, hat mich allerdings stutzig gemacht. php8.0-mysql war nicht installiert. Wird dieses Paket nicht auch von MariaDB benötigt? Ist das ggf. das ganze Problem gewesen?

Dann habe ich noch eine Frage. Was kann ich einstellen, damit bei nÀchste apt update nicht wieder meine Installation zerschossen wird?

1 Like

Jup. Das wird benötigt um mit der Datenbank (MySQL oder MariaDB) zu kommunizieren. Das erklÀrt den Internal Server Error.

Normalerweise sollte das eigentlich nicht passieren, wenn die Pakete explizit mit der Versionsnummer installiert wurden, so wie du das jetzt gemacht hast. Du hÀttest damit eigentlich nur Updates von 8.0.14 zu 8.0.15 bekommen sollen und in Zukunft dann irgendwann auf 8.0.16. Mir ist aber sowas Àhnliches vor ein paar Wochen auf meinem Testserver auch passiert. Warum genau weiss ich nicht. ich gehe aber davon aus, dass warscheinlich noch irgendwelche PHP Pakete ohne explizite Versionsnummer installiert waren, die dann plötzlich eine AbhÀngigkeit zu PHP 8.1 hatten.

Ich habe dann eine Neuinstallation von PHP gemacht, weil das mit meinen Notizen schneller ging, als herauszufinden, welches Paket die Installation von PHP8.1 getriggert hat und dann einzelne Pakete zu deinstallieren und die richtigen zu installieren. Ich habe in der Zwischenzeit auch schon wieder Updates auf 8.0.15 erhalten, mit denen es keine Probleme gab, somit denke ich, das nun alles ok ist.

Ok, vielen Dank noch einmal fĂŒr die Hilfe.
By the way, ich habe einige Konfig-Dateien ĂŒberprĂŒft. Sie wurden nicht aktualisiert. Ich habe meine Änderungen darin gefunden. Die Änderungen kommentiere ich durch Kommentarzeilen. Ab sofort fange ich damit an, auch die einzelnen Dateien aufzuschreiben, die ich Ă€ndere.

Da ich mich jetzt im Forum angemeldet habe, werde ich gleich einen Weiteren Beitrag aufmachen.

Gruß
Apollon

1 Like

sollten sie auch nicht. Apt fragt normalerweise bei einem Upgrade auf eine neue Version, ob er sie ĂŒberscherieben soll oder die alte behalten soll. Da aber mit PHP theoretisch auch mehrere Versionen parallel installiert sein können, hat jede Hauptversion sowieso seine eigene Config Datei.

Btw. mit “apt remove”, werden nur die Pakete entfernt, die dazugehörigen Config Files bleiben erhalten. Mit “apt purge” werden die Pakete und die Config Files entfernt.

Beides kann nĂŒtzlich sein, jenachdem was man erreichen will bzw. wo das Problem liegt. :wink:

Eine gute Doku ist nicht zu unterschÀtzen. Hat mir schon ein paarmal den A**** gerettet. :wink: Kein Mensch kann sich alle merken, was er jemals irgendwann irgendwo konfiguriert hat. :slight_smile: