nach dem Update von 27 auf 27.0.1 habe ich folgende Fehlermeldung erhalten:
Es gibt einige Warnungen bei deiner Systemkonfiguration.
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 “systag_by_tagid” in der Tabelle “oc_systemtag_object_mapping”.
Fehlender Index “textstep_session” in der Tabelle “text_steps”.
Bei Durchführen des Befehls: occ db:add-missing-indices
bekomme ich folgende Fehlermeldung:
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:140
Kennt jemand dafür eine Lösung.
Freue mich auf Euren Support!
VG Andreas
Hallo ernolf,
vielen Dank für deine Nachricht. Hier die gewünschten Infos.
Freue mich auf deine Feedback.
VG
Wie lautet dein Setup? ist es ein dedizierter Server oder ein Docker/AIO Gerät?
Habe die Nextcloud via LAMP-Stack auf einem Server in meinem Heimnetzwerk installiert.
Welches Betriebssystem? Debian/Ubuntu/?
Ubuntu 22.04
Was für Webserver? Apache2/nginx?
Apache2
Welche php-Version
8.1 (zeigt mir Nexcloud System an)
Hast du kürzlich ein PHP-Update durchgeführt?
Nein. Habe die Nextcloud von 27 auf 27.0.1 upgedadet und bekam diese 2 Fehlermeldungen
Fehlender Index “systag_by_tagid” in der Tabelle “oc_systemtag_object_mapping”.
Fehlender Index “textstep_session” in der Tabelle “text_steps”.
In diesem Rahmen wollte ich dann sudo -u www-data php occ db:add-missing-indices durchführen und bekam dann folgende Meldung
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:140
Eventuell hast du mehrere PHP Versionen installiert, zB 8.1 für den Webserver und 8.2 auf der CLI. Checke welche php Version genutzt wird, wenn du php auf der CLI ausführst
entschuldigung, deine Antwort ist mir irgendwie durchgerutscht.
Ja, wie @SysKeeper schon geschrieben hat, würde ich auch erst mal überprüfen welche php-Versionen wo benutzt werden.
Hier die Kommandos zum prüfen:
Version des php-cli
php -v
# oder
readlink -f $(which php)
Die vom apache2 benutzte Version:
apachectl -tD DUMP_INCLUDES | sed -n '/php.*conf/ s#.*/\([^/]*\)\.conf#\1#p'
Dies listet alle installierten php-Pakete auf deinem System auf:
dpkg -l | awk '/^ii.*php/ {print $2}'
Es geht also darum, dass nur eine Version benutzt wird. Wenn also php8.1 von deinem apache2 benutzt wird und ‘php -v’ bzw. ‘readlink -f $(which php)’ dir etwas von php8.2 sagt, dann kannst du entweder dein apache2 auch auf php8.2 hoch stufen oder über dem update-alternatives Mechanismus manuell auf 8.1 schalten.
Dazu musst du folgende Zeile ausführen und Schritt für Schritt jede Alternative aus dem Status “automatischer Modus” auf 8.1 im “manueller Modus” setzen:
for linkgroup in `ls /var/lib/dpkg/alternatives/ | grep -E "ph(ar|p)"`; do update-alternatives --config $linkgroup; done