Fehlerbehebung
PrestaShop: „An exception occurred while establishing a connection to figure out your platform version“
Wenn beim Installieren oder Aktualisieren von PrestaShop im Schritt, der mit der Datenbank arbeitet, ein Fehler wie dieser erscheint:
[WARNING] Some commands could not be registered. An exception occurred in ConnectionFactory.php while establishing a connection to figure out your platform version. You can circumvent this by setting a 'server_version' configuration value. For further information, visit: https://github.com/doctrine/DoctrineBundle/issues/673. In AbstractMySQLDriver.php, an exception occurred in driver: SQLSTATE[HY000] [2026] SSL connection error: SSL_CTX_set_default_verify_paths failed. The same error is repeated in Exception.php and PDOConnection.php: SQLSTATE[HY000] [2026] SSL connection error: SSL_CTX_set_default_verify_paths failed.
liegt das Problem weder bei MySQL noch bei den Zertifikaten des Servers: Es ist eine falsch interpretierte Zahl in der Konfiguration von PrestaShop. Wenn Sie mit dem Anwendungsinstallationsprogramm von cPanel installieren, passiert Ihnen das nicht; wenn der Fehler trotzdem auftritt, gibt es zwei Lösungen.
Warum es passiert
PrestaShop 1.7 und die Versionen 8.0 und 8.1 aktivieren die MySQL-Option MULTI_STATEMENTS, indem sie ihre Nummer, 1013, in app/config/doctrine.yml schreiben. Diese Nummer ist mit der auf mysqlnd basierenden PHP-Erweiterung korrekt, aber die klassische Erweiterung pdo_mysql nummeriert ihre Optionen anders: Für sie ist MULTI_STATEMENTS die 1016, und 1013 ist der Pfad zu den SSL-Zertifikaten (SSL_CAPATH).
So übergibt PrestaShop der Verbindung am Ende einen ungültigen Zertifikatspfad, die SSL-Verbindung schlägt fehl und Doctrine kann die MySQL-Version nicht ermitteln. Daher das SSL_CTX_set_default_verify_paths failed.
PrestaShop hat das in 8.2 behoben, das den Namen der Konstante statt der Nummer verwendet. Wenn Sie von einer älteren Version aktualisieren, kann der Fehler während des Updates auftreten.
Lösung 1: die Erweiterung nd_pdo_mysql aktivieren (empfohlen)
Ersetzen Sie die Erweiterung pdo_mysql durch nd_pdo_mysql unter cPanel > PHP-Version auswählen in der Registerkarte der Erweiterungen:
- Deaktivieren Sie pdo_mysql.
- Aktivieren Sie nd_pdo_mysql.

Die Änderungen werden automatisch gespeichert. nd_pdo_mysql tut dasselbe wie pdo_mysql, verwendet aber die Nummerierung, die PrestaShop erwartet (1013), sodass Sie keine Datei anfassen müssen.
Wenn Ihre Domain eine andere PHP-Version als die allgemeine des Kontos verwendet, nehmen Sie die Änderung in dieser Version vor. Das erklären wir in Mehrere PHP-Versionen pro Verzeichnis oder Domain.
Lösung 2: app/config/doctrine.yml bearbeiten
Verwenden Sie sie nur, wenn Sie die Erweiterung nicht wechseln können. Öffnen Sie app/config/doctrine.yml im Dateimanager von cPanel und suchen Sie den Abschnitt options:
options: # PDO::MYSQL_ATTR_INIT_COMMAND 1002: "SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))" # PDO::MYSQL_ATTR_MULTI_STATEMENTS 1013: '%env(const:runtime:_PS_ALLOW_MULTI_STATEMENTS_QUERIES_)%'
Ändern Sie 1013 in 1016:
options: # PDO::MYSQL_ATTR_INIT_COMMAND 1002: "SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))" # PDO::MYSQL_ATTR_MULTI_STATEMENTS 1016: '%env(const:runtime:_PS_ALLOW_MULTI_STATEMENTS_QUERIES_)%'
Behalten Sie die Einrückung mit Leerzeichen bei: YAML erlaubt keine Tabulatoren. Leeren Sie danach den Cache, indem Sie den Inhalt von var/cache/ löschen, und wiederholen Sie die Installation oder das Update.
1016 ist nur mit pdo_mysql korrekt. Wenn Sie später nd_pdo_mysql aktivieren, setzen Sie wieder 1013 ein.
Prüfen, ob es funktioniert
Wiederholen Sie die Installation oder das Update: Der Datenbankschritt muss ohne den Hinweis zu platform version abgeschlossen werden. Wenn das Update auf halbem Weg stehen geblieben war, prüfen Sie vorher sein Protokoll und stellen Sie, falls nötig, das Backup wieder her, das Sie vor dem Start erstellt haben.
Das könnte Ihnen auch helfen
- Joomla 1.0 und 1.5 mit MySQL 8, Fehler mit dem reservierten Wort „groups“ Bringen Sie ein Joomla 1.0 oder 1.5 mit MySQL 8 zum Laufen, indem Sie das reservierte Wort groups in...
- Konflikt mit der Drupal-Tabelle „system“ in MySQL 8 (Fehler 1064) Beheben Sie den Fehler 1064 von Drupal 6 und 7 mit MySQL 8 wegen der Tabelle system, einem reservier...
- Beschädigte Tabellen in einer MySQL-Datenbank Bestätigen Sie Fehler und Speicher-Engine einer Tabelle, bevor Sie sie reparieren, behalten Sie ein...
- Fehler „Argument X passed OrderProductForViewing must be of the type string“ Ermitteln Sie das genaue Argument und die genaue Zeile, die beim Anzeigen einer PrestaShop-Bestellun...
Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.