Update auf 20.0.14 Problem: Could not find driver

Hallo,

da meine Installation still im Hintergrund lief habe ich ein paar Updates verpasst und hinke jetzt hinterher. Aktuell bin ich auf Version und 19, aber beim Update auf 20.0.14 habe ich jetzt ein Problem gefunden, bei dem ich mit googeln nicht weiterkomme.

Ich habe eine Synology DS218j mit DSM 7.0.1 eine NC19 mit PHP 7.4, Apache 2.4. MariaDB 10. Installation unter /web/cloud/ und Daten unter /Daten/.

Vorher hatte ich Probleme mit dem Webupdater, nach Ändern des php memory limit auf 512MB und Nutzng des updater.phar (mit "run occ? → yes) auf einer SSH-Konsole zeigt mir die Login-Webseite jetzt “starte Update auf 20.0.14”. Das läuft immer in einen “allgemeiner Fehler”, anschließend hängt es im maintenance mode, den ich durch Bearbeiten der config.php wieder deaktiviere.

Manuelles Starten des occ auf einer Konsole bringt mir jetzt:

Syn:/volume1/web/cloud$ sudo -u http php occ upgrade
Password:
An unhandled exception has been thrown:
Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occurred in driver: could not find driver in /volume1/web/cloud/lib/private/DB/Connection.php:72
Stack trace:
#0 /volume1/web/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1449): OC\DB\Connection->connect()
#1 /volume1/web/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(892): Doctrine\DBAL\Connection->getWrappedConnection()
#2 /volume1/web/cloud/lib/private/DB/Connection.php(202): Doctrine\DBAL\Connection->executeQuery(‘SELECT * FROM ...', Array, Array, NULL)*** ***#3 /volume1/web/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php(206): OC\DB\Connection->executeQuery('SELECT * FROM …’, Array, Array)
#4 /volume1/web/cloud/lib/private/DB/QueryBuilder/QueryBuilder.php(248): Doctrine\DBAL\Query\QueryBuilder->execute()
#5 /volume1/web/cloud/lib/private/AppConfig.php(345): OC\DB\QueryBuilder\QueryBuilder->execute()
#6 /volume1/web/cloud/lib/private/AppConfig.php(110): OC\AppConfig->loadConfigValues()
#7 /volume1/web/cloud/lib/private/AppConfig.php(301): OC\AppConfig->getApps()
#8 /volume1/web/cloud/lib/private/legacy/OC_App.php(967): OC\AppConfig->getValues(false, ‘installed_versi…’)
#9 /volume1/web/cloud/lib/private/Server.php(668): OC_App::getAppVersions()
#10 /volume1/web/cloud/lib/private/AppFramework/Utility/SimpleContainer.php(155): OC\Server->OC{closure}(Object(OC\Server))
#11 /volume1/web/cloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility{closure}(Object(Pimple\Container))
#12 /volume1/web/cloud/lib/private/AppFramework/Utility/SimpleContainer.php(122): Pimple\Container->offsetGet(‘OC\Memcache\Fac…’)
#13 /volume1/web/cloud/lib/private/ServerContainer.php(156): OC\AppFramework\Utility\SimpleContainer->query(‘OC\Memcache\Fac…’, true)
#14 /volume1/web/cloud/lib/private/Server.php(1688): OC\ServerContainer->query(‘OC\Memcache\Fac…’)
#15 /volume1/web/cloud/lib/private/Server.php(1028): OC\Server->getMemCacheFactory()
#16 /volume1/web/cloud/lib/private/AppFramework/Utility/SimpleContainer.php(155): OC\Server->OC{closure}(Object(OC\Server))
#17 /volume1/web/cloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility{closure}(Object(Pimple\Container))
#18 /volume1/web/cloud/lib/private/AppFramework/Utility/SimpleContainer.php(122): Pimple\Container->offsetGet(‘OCP\Lock\ILocki…’)
#19 /volume1/web/cloud/lib/private/ServerContainer.php(156): OC\AppFramework\Utility\SimpleContainer->query(‘OCP\Lock\ILocki…’, true)
#20 /volume1/web/cloud/lib/private/Server.php(1988): OC\ServerContainer->query(‘OCP\Lock\ILocki…’)
#21 /volume1/web/cloud/lib/private/Files/View.php(118): OC\Server->getLockingProvider()
#22 /volume1/web/cloud/lib/private/Server.php(395): OC\Files\View->__construct()
#23 /volume1/web/cloud/lib/private/AppFramework/Utility/SimpleContainer.php(155): OC\Server->OC{closure}(Object(OC\Server))
#24 /volume1/web/cloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility{closure}(Object(Pimple\Container))
#25 /volume1/web/cloud/lib/private/AppFramework/Utility/SimpleContainer.php(122): Pimple\Container->offsetGet(‘OC\Files\Node\H…’)
#26 /volume1/web/cloud/lib/private/ServerContainer.php(156): OC\AppFramework\Utility\SimpleContainer->query(‘OC\Files\Node\H…’, true)
#27 /volume1/web/cloud/lib/private/Server.php(1335): OC\ServerContainer->query(‘OC\Files\Node\H…’)
#28 /volume1/web/cloud/lib/base.php(595): OC\Server->boot()
#29 /volume1/web/cloud/lib/base.php(1091): OC::init()
#30 /volume1/web/cloud/console.php(49): require_once(’/volume1/web/cl…’)
#31 /volume1/web/cloud/occ(11): require_once(’/volume1/web/cl…’)
#32 {main}

Auch andere OCC-Befehle wie Status bringen die gleiche Fehlermeldung.

Wer hat eine Idee?

Danke!

Jörg

Hallo,

leider hier keine Hilfe bekommen, aber zum Glück anderswo. Falls jemand das gleiche oder ein ähnliches Problem hat, hier die Lösung für meinen Fall:

Ich habe php in Version 7.2, 7.3 und 7.4 installiert, weil mir das vom Synology DSM so angeboten wurde als Update. Offensichtlich passte da etwas nicht. Auch das Auswählen von php7.4 in allen Einstellungen der Webstation im DSM half nicht. Aber folgender Aufruf

sudo -u http php74 updater.phar

erzwingt die Ausführung mit php7.4 und es läuft (evtl bei anderen -u www-data).

Neben-Fund: Obwohl ich in an allen gefundenen Stellen memory_limit = 512MB gesetzt habe, gibt es wohl nicht gefundene weitere Stellen, u.a. in der Archiv-Struktur von updater.phar. Daher noch eine “Verbesserung” des Aufrufes:

sudo -u http php74 -d memory_limit=512M updater.phar

Damit wird dieser Befehl mit ausreichend Speicher ausgeführt und ich konnte tatsächlich auf Version 20, 21 und 22 aktualisieren! (23 ist noch nicht als “stable” verfügbar).

Grüße allerseits!

Oh, und zum Thema “memory_limit = 128MB”:

sudo find / -name php.ini | xargs -n1 grep -H memory_limit

zeigt einem alle Dateien im gesamtem System, an denen ein Memory-Limit eingetragen ist, und man kann dann alle genannten Dateien per nano oder vim bearbeiten.

Grüße!