Typo3 Upgrade auf 6.2 - Database Error: PHP mysqli extension not loaded

Das Update auf Typo3 6.2 LTS steht vor der Tür und viele Website-Administratoren werden wahrscheinlich von dem altem Long Term Support in Version 4.5 aktualisieren. Bei diesem recht großen Versionssprung gab es Typo3-seitig viele Änderungen, die bei einem Upgrade zu Problemen führen kann.

Eine grundlegende Änderung ist, dass Typo3 für die Datenbank-Verbindung auf mysqli anstelle von mysql setzt. MySQLi ist die erweiterte MySQL-Bibliothek für PHP, welche sowohl prozedural als auch objektorientiert verwendet werden kann und viele Sicherheitsmechanismen von Haus aus mitbringt.

Das Problem beim Upgrade auf Typo3 6.2 ist, dass es zu folgender Fehlermeldung kommt, wenn PHP die MySQLi-Bibliothek nicht unterstützt:

Fatal error: 
Uncaught exception 'RuntimeException' with message
'Database Error: PHP mysqli extension not loaded.
This is a must have for TYPO3 CMS!' in
typo3_src-6.2.4/typo3/sysext/core/Classes/Database/DatabaseConnection.php:1168
Stack trace: #0 typo3_src-6.2.4/typo3/sysext/install/Classes/Controller/Action/Step/DatabaseConnect.php(302):
TYPO3\CMS\Core\Database\DatabaseConnection->sql_pconnect()
#1 typo3_src-6.2.4/typo3/sysext/install/Classes/Controller/Action/Step/DatabaseConnect.php(198):
TYPO3\CMS\Install\Controller\Action\Step\DatabaseConnect->isConnectSuccessful()
#2 typo3_src-6.2.4/typo3/sysext/install/Classes/Controller/StepController.php(110):
TYPO3\CMS\Install\Controller\Action\Step\DatabaseConnect->needsExecution()
#3 typo3_src-6.2.4/typo3/sysext/install/Classes/Controller/StepController.php(60):
TYPO3\CMS\Install\Controller\StepControlle in
typo3_src-6.2.4/typo3/sysext/core/Classes/Database/DatabaseConnection.php on line 1168

In diesem Fall unterstützt PHP die MySQLi-Bibliothek nicht. Unter Linux Gentoo ist es beispielsweise erforderlich, PHP mit mysqli zu kompilieren.

# emerge -av php

 * IMPORTANT: 7 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-lang/php-5.4.30:5.4  USE="apache2 berkdb bzip2 cgi cli crypt ctype curl exif fileinfo
filter gd gdbm hash iconv ipv6 json mysql mysqli nls phar posix readline session simplexml snmp soap ssl
threads tokenizer truetype unicode xml zlib -bcmath -calendar -cdb -cjk -curlwrappers -debug -embed -enchant
(-firebird) -flatfile -fpm -ftp -gmp -imap -inifile -intl -iodbc -kerberos -ldap -ldap-sasl -libedit -mhash
-mssql -mysqlnd -oci8-instant-client -odbc -pcntl -pdo -postgres -qdbm -recode (-selinux) -sharedmem -sockets
-spell -sqlite (-sybase-ct) -systemd -sysvipc -tidy -wddx -xmlreader -xmlrpc -xmlwriter -xpm -xslt -zip"
0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

Would you like to merge these packages? [Yes/No]

Es ist also nun Aufgabe des Website-Administrators für eine mysqli Unterstützung zu sorgen. Wer keinen eigenen Root-Server betreibt, muss sich leider mit seinem Provider auseinandersetzen.