Woher der PDO-Fehler bei Contao Webseiten kommt

Die typische Fehlermeldung im Log erkennen

Im Contao-Log erscheint dann ein Eintrag wie Class "PDO" not found, meist mit einem Stacktrace, der auf vendor/doctrine/dbal/src/Driver/PDO/PDOConnect.php verweist. In phpMyAdmin taucht oft parallel ein Hinweis auf, dass die Erweiterung mysqlnd fehlt. Beide Meldungen haben dieselbe Ursache: eine unvollständige PHP-Konfiguration.

Warum CLI und Webserver unterschiedliche PHP-Module zeigen können

Viele Hoster mit Multi-PHP-Auswahl, etwa auf Basis von CloudLinux alt-php, betreiben für dieselbe PHP-Version zwei getrennte Installationen: eine für die Kommandozeile, eine für den Webserver. Ein Test per SSH kann deshalb PDO als vorhanden zeigen, während die Website trotzdem den Fehler wirft, weil im Web-SAPI ein anderes Modulset aktiv ist. Gelegentlich ist eine dieser Installationen auch schlicht fehlerhaft gebaut, erkennbar an Meldungen wie undefined symbol beim Laden von Modulen wie nd_pdo_mysql oder nd_mysqli. In dem Fall hilft nur eine andere PHP-Version, bis der Hoster die defekte Installation repariert hat.

Contao-Website nach PDO-Fehler wieder zum Laufen bringen

Die folgenden Schritte helfen, die Ursache einzugrenzen und die Website schnell wieder online zu bringen.
PHP-Konfiguration im Web-Kontext direkt prüfen

Eine SSH-Prüfung reicht nicht aus, weil sie oft eine andere PHP-Installation abfragt als der Webserver. Zuverlässiger ist eine kurze Testdatei mit phpinfo() im Webroot der Domain. Im Browser aufgerufen zeigt sie, ob dort tatsächlich eine PDO- und eine pdo_mysql-Sektion existieren. Die Datei danach sofort wieder löschen, da phpinfo() sensible Serverdaten offenlegt.
Verfügbare PHP-Versionen auf dem Server auflisten

Per SSH lassen sich bei alt-php-basiertem Hosting alle installierten Versionen auflisten und einzeln auf PDO testen, etwa mit einem Aufruf der jeweiligen PHP-Binary und dem Parameter -m in Kombination mit einem Filter auf pdo. So findet man schnell heraus, welche Version tatsächlich vollständig funktioniert.
Auf eine funktionierende PHP-Version umstellen

Im Contao Manager lässt sich unter Serverkonfiguration der Pfad zur PHP-Binary anpassen. Dabei die Mindestanforderung der eigenen Contao-Version im Blick behalten: Contao 5.3 benötigt mindestens PHP 8.1, Contao 5.7 mindestens PHP 8.3. Nach dem Wechsel lohnt sich ein Blick auf die empfohlene, nicht nur die minimale Version, da neuere PHP-Versionen in der Regel schneller und länger unterstützt sind.
Nach dem Versionswechsel Composer aktualisieren

Ein Wechsel der PHP-Version sollte immer von einem vollständigen Composer-Update begleitet werden, damit alle installierten Pakete inklusive Contao selbst zur neuen PHP-Version passen. Im Contao Manager findet sich das im Wartungsbereich unter Composer-Abhängigkeiten.
Hosting-Support kontaktieren, wenn keine Version passt

Zeigt keine der verfügbaren PHP-Versionen eine vollständige PDO-Unterstützung, liegt das Problem serverseitig. In diesem Fall hilft nur eine Meldung an den Support, am besten mit der genauen Fehlermeldung aus dem Log und dem Hinweis, welche PHP-Version betroffen ist.

Zurück zur Contao FAQ Übersicht