Internal Server Error seit heute Nacht

Liebe Nextcloud-Experten!

Ich bekomme seit letzter Nacht plötzlich die folgende Fehlermeldung wenn ich mich auf meine Nextcloud verbinden möchte: “Internal Server Error
The server encountered an internal error and was unable to complete your request.”

  • Auf welcher Hardware? Raspberry PI4 mit 8GB
  • Betriebssystem: Raspbian GNU/Linux 10 (buster)
  • Nextcloud Version: 24.0.6
  • PHP Version: PHP 8.0.24
  • Welche Datenbank? MariaDB Ver 15.1
  • Apache version: Apache/2.4.38 (Raspbian)
  • Netzwerk Aufgliederung: Fritz!Box > Switch > PI4
  • Wurden vor kurzen Server Updates gemacht? Wenn ja von was? hmmm, ja - gibt es von ‘apt update’ ein Logfile?
  • Habt ihr die Logs angesehen von Nextcloud und von System? finde das nextcloud-logfile nicht in var/log/, wo ist das versteckt?

apache2/error.log:

[Thu Oct 27 00:00:03.201927 2022] [ssl:warn] [pid 28807] AH01909: 127.0.1.1:443:0 server certificate does NOT include an ID which matches the server name
[Thu Oct 27 00:00:03.202412 2022] [mpm_prefork:notice] [pid 28807] AH00163: Apache/2.4.38 (Raspbian) OpenSSL/1.1.1n configured -- resuming normal operations
[Thu Oct 27 00:00:03.202438 2022] [core:notice] [pid 28807] AH00094: Command line: '/usr/sbin/apache2'
[Thu Oct 27 00:00:47.716015 2022] [php:error] [pid 22206] [client 192.168.82.171:56785] PHP Fatal error:  Uncaught Doctrine\\DBAL\\Exception: Failed to connect to the database: An exception occurred in the driver: could not find driver in /var/www/nextcloud/lib/private/DB/Connection.php:139\nStack trace:\n#0 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1519): OC\\DB\\Connection->connect()\n#1 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1041): Doctrine\\DBAL\\Connection->getWrappedConnection()\n#2 /var/www/nextcloud/lib/private/DB/Connection.php(261): Doctrine\\DBAL\\Connection->executeQuery()\n#3 /var/www/nextcloud/3rdparty/doctrine/dbal/src/QueryBuilder.php(345): OC\\DB\\Connection->executeQuery()\n#4 /var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(281): Doctrine\\DBAL\\Query\\QueryBuilder->execute()\n#5 /var/www/nextcloud/lib/private/AppConfig.php(411): OC\\DB\\QueryBuilder\\QueryBuilder->execute()\n#6 /var/www/nextcloud/lib/private/AppConfig.php(176): OC\\AppConfig->loadConfigValues()\n#7 /var/www/nextcloud/lib/private/AppConfig.php(367): OC\\AppConfig->getApps()\n#8 /var/www/nextcloud/lib/private/legacy/OC_App.php(983): OC\\AppConfig->getValues()\n#9 /var/www/nextcloud/lib/private/Server.php(713): OC_App::getAppVersions()\n#10 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(162): OC\\Server->OC\\{closure}()\n#11 /var/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(122): OC\\AppFramework\\Utility\\SimpleContainer->OC\\AppFramework\\Utility\\{closure}()\n#12 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(129): Pimple\\Container->offsetGet()\n#13 /var/www/nextcloud/lib/private/ServerContainer.php(136): OC\\AppFramework\\Utility\\SimpleContainer->query()\n#14 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(57): OC\\ServerContainer->query()\n#15 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(184): OC\\AppFramework\\Utility\\SimpleContainer->get()\n#16 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(162): OC\\AppFramework\\Utility\\SimpleContainer->OC\\AppFramework\\Utility\\{closure}()\n#17 /var/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\\AppFramework\\Utility\\SimpleContainer->OC\\AppFramework\\Utility\\{closure}()\n#18 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(129): Pimple\\Container->offsetGet()\n#19 /var/www/nextcloud/lib/private/ServerContainer.php(136): OC\\AppFramework\\Utility\\SimpleContainer->query()\n#20 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(57): OC\\ServerContainer->query()\n#21 /var/www/nextcloud/lib/private/Server.php(1105): OC\\AppFramework\\Utility\\SimpleContainer->get()\n#22 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(162): OC\\Server->OC\\{closure}()\n#23 /var/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(122): OC\\AppFramework\\Utility\\SimpleContainer->OC\\AppFramework\\Utility\\{closure}()\n#24 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(129): Pimple\\Container->offsetGet()\n#25 /var/www/nextcloud/lib/private/ServerContainer.php(136): OC\\AppFramework\\Utility\\SimpleContainer->query()\n#26 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(57): OC\\ServerContainer->query()\n#27 /var/www/nextcloud/lib/private/Server.php(2082): OC\\AppFramework\\Utility\\SimpleContainer->get()\n#28 /var/www/nextcloud/lib/private/Files/View.php(122): OC\\Server->getLockingProvider()\n#29 /var/www/nextcloud/lib/private/Server.php(454): OC\\Files\\View->__construct()\n#30 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(162): OC\\Server->OC\\{closure}()\n#31 /var/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(122): OC\\AppFramework\\Utility\\SimpleContainer->OC\\AppFramework\\Utility\\{closure}()\n#32 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(129): Pimple\\Container->offsetGet()\n#33 /var/www/nextcloud/lib/private/ServerContainer.php(136): OC\\AppFramework\\Utility\\SimpleContainer->query()\n#34 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(57): OC\\ServerContainer->query()\n#35 /var/www/nextcloud/lib/private/Server.php(1445): OC\\AppFramework\\Utility\\SimpleContainer->get()\n#36 /var/www/nextcloud/lib/base.php(602): OC\\Server->boot()\n#37 /var/www/nextcloud/lib/base.php(1111): OC::init()\n#38 /var/www/nextcloud/ocs/v1.php(31): require_once('...')\n#39 /var/www/nextcloud/ocs/v2.php(23): require_once('...')\n#40 {main}\n  thrown in /var/www/nextcloud/lib/private/DB/Connection.php on line 139

Danach folgen noch über 200 Zeilen die gleich aussehen wie die letzte oben.

Die letzten Zeilen in syslog.1 lauten:

Oct 27 00:00:01 raspi4 systemd[1]: Starting Rotate log files...
Oct 27 00:00:01 raspi4 systemd[1]: Starting Daily man-db regeneration...
Oct 27 00:00:02 raspi4 systemd[1]: Reloading The Apache HTTP Server.
Oct 27 00:00:02 raspi4 apachectl[22195]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Oct 27 00:00:02 raspi4 systemd[1]: Reloaded The Apache HTTP Server.
  • Bei was für einer Aktion ist der Fehler aufgetreten? Zuerst aufgfallen ist es mir weil die Synchronisation mit der nextcloud Android App fehlgeschlagen ist. Als ich mich dann am Morgen einloggen wollte kam die Fehlermeldung.

Ich hoffe die Infos reichen aus um mir bei meinem Problem zu helfen.

Danke schon mal vorab.
Erich

Interesant könnte Folgendes sein:

Gefunden habe ich diesen Forenbeitrag.

In der Lösung wird von unterschiedlichen PHP-Versionen gesprochen. Hast du vielleicht mehrere PHP-Versionen installiert? Deine angegebene PHP-Version PHP 8.0.24 stimmt nicht mit der von Debian Buster PHP 7.3 überein. Nextcloud unterstützt kein PHP 7.3 mehr (Requirements Nextcloud 24).

Schau mal ob sich die PHP-Versionen irgendwie gegenseitig im Weg stehen. Vielleicht hat ja z. B. die alte PHP-Version per Cron deine Nextcloud gecrasht.

Schau z. B.
dpkg -l |grep php

Danke für die rasche Antwort. Das hat mir in Erinnerung gerufen, dass ich vor längerer Zeit bereits mal php8.1 installiert hatte, die damalige nextcloud-Version damit aber nicht umgehen konnte.
Ich habe jetzt mal mit sudo update-alternatives --set php /usr/bin/php8.1 auf php8.1 umgestellt und ein reboot durchgeführt. Es hat sich aber nichts geändert.

@ric0102
Ich verstehe gar nicht, warum so viele Anwender auf der einen Seite “veraltete” Debian-Versionen (hier Buster statt Bullseye) und auf der anderen Seite immer auf die neusten Anwendungen (hier PHP 8.1) setzen. Warum nicht einfach Bullseye. Da gibt es PHP 7.4 dabei und das sollte dann auch für Nextcloud angenehm laufen.

Was passiert, wenn du den PHP-MySQL-Treiber nochmal explizit versuchst, zu installieren?

apt-get install php8.0-mysql

Jetzt bekomme ich beim Seitenaufruf die Meldung
" This page isn’t working
192.168.82.19 is currently unable to handle this request.
HTTP ERROR 500"

Auch das sollte doch zu einem Eintrag im Apache-Serverlog fuehren. Für mich sieht das aber so aus, dass da ein Updatemechanismus was zerschossen zu haben scheint. Eventuell mal Apache und PHP neu aufsetzen?

Ich würde zum testen einfach mal eine phpinfo() datei erzeugen und die in das Documentroot vom apachen legen.
Vielleicht ist es ja nur der server und nicht nextcloud
übrigens die Log Datei von der nextcloud liegt an dem Ort den du unter config in der config.php angegeben hast

danke @kimmerin
jetzt habe ich im nextcloud.log folgende Zeilen gefunden
Auszug mit einem der letzten erfolgreichen Logins: (username hier geändert)

{"reqId":"FCRG3rdCBTylNVJaXbmE","level":2,"time":"2022-10-23T06:43:01+00:00","remoteAddr":"192.168.82.171","user":"xyz","app":"user_status","method":"GET","url":"/index.php/apps/dashboard/","message":"Lazy initial state provider for status took 1.24 seconds.","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36 OPR/62.0.33$

und hier der letzte fehlgeschlagene Loginversuch gerade eben:

{"reqId":"JE0jhaDf8IQtYLUHQOXb","level":3,"time":"2022-10-28T11:38:01+00:00","remoteAddr":"192.168.82.171","user":"--","app":"index","method":"GET","url":"/index.php","message":"Call to undefined function simplexml_load_file()","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36 OPR/62.0.3331.14 (Edition beta),gzip(gfe)","v$
{"reqId":"JE0jhaDf8IQtYLUHQOXb","level":3,"time":"2022-10-28T11:38:01+00:00","remoteAddr":"192.168.82.171","user":"--","app":"PHP","method":"GET","url":"/index.php","message":"Error: Call to undefined function simplexml_load_file() at /var/www/nextcloud/lib/private/App/InfoParser.php#69","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.8$

Danke an alle die mir bisher geantwortet haben.
Ich habe das mit der phpinfo() nun auch endlich geschafft und bekomme beim Aufruf eine Ausgabe die so beginnt:


nur bin ich mir noch nicht ganz im klaren was ich daraus für die weitere Vorgangsweise verwenden kann.

Hi, hast Du zufällig in der letzten Zeit mal ein “apt autoremove” durchgeführt.
Ich hatte vor ein paar Monaten ein ähnliches Problem.
Da war “apt” der Meinung, dass ein paar PHP-Module zu entfernen sind.
Habs nicht gleich bemerkt - erst nach dem Apache-Neustart fing das “Internal Server Error”-Drama an.
Da war ich erst mal ratlos
Kurzum, alle für NextCloud erforderlichen PHP-Module nachinstalliert - und schon war wieder alles gut.
Prüf mal - ein Versuch ist’s wert

Evtl. mit “apt install php-xml”

Gruß Mike

DANKE @mpoeppi!
Ja, du hast recht, das “apt autoremove” ist aber schon eine Weile her.
Dann mache ich mich mal auf die Suche, welche Module für NextCloud erforderlich sind.

Evtl. mit “apt install php-xml”

hat leider nichts gebracht, …
aber die Suche nach “alle für NextCloud erforderlichen PHP-Module” hat mich zu dieser Liste geführt. Diese Anleitung habe ich befolgt und :star_struck: meine NC ist wieder online!

Das ist das perfide an der Sache - bei mir war “autoremove” glücklicherweise max. einen Tag her und ich hab dann irgendwas am Apache geschraubt - deshalb hab ichs recht schnell merken können…
Aber super das NC wieder rennt :+1:

Happy Halloween