Solucionar problemas
PrestaShop: «An exception occurred while establishing a connection to figure out your platform version»
Si al instalar o actualizar PrestaShop, en el paso que trabaja con la base de datos, aparece un error como este:
[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.
el problema no es MySQL ni los certificados del servidor: es un número mal interpretado en la configuración de PrestaShop. No te pasará si instalas con el autoinstalador de aplicaciones de cPanel, pero si te aparece tiene dos soluciones.
Por qué ocurre
PrestaShop 1.7 y las versiones 8.0 y 8.1 activan la opción de MySQL MULTI_STATEMENTS escribiendo su número, 1013, en app/config/doctrine.yml. Ese número es correcto con la extensión de PHP basada en mysqlnd, pero la extensión pdo_mysql clásica numera sus opciones de otra forma: para ella MULTI_STATEMENTS es la 1016 y la 1013 es la ruta de certificados SSL (SSL_CAPATH).
Así, PrestaShop acaba pasando una ruta de certificados inválida a la conexión, la conexión SSL falla y Doctrine no puede averiguar la versión de MySQL. De ahí el SSL_CTX_set_default_verify_paths failed.
PrestaShop lo corrigió en la 8.2, que usa el nombre de la constante en vez del número. Si actualizas desde una versión anterior, el error puede aparecer durante la actualización.
Solución 1: activar la extensión nd_pdo_mysql (recomendada)
Cambia la extensión pdo_mysql por nd_pdo_mysql desde cPanel > Seleccionar versión de PHP, en la pestaña de extensiones:
- Desmarca pdo_mysql.
- Marca nd_pdo_mysql.

Los cambios se guardan solos. nd_pdo_mysql hace lo mismo que pdo_mysql, pero usa la numeración que espera PrestaShop (1013), así que no tienes que tocar ningún fichero.
Si tu dominio usa una versión de PHP distinta a la general de la cuenta, haz el cambio en esa versión. Lo tienes explicado en múltiples versiones de PHP por directorio o dominio.
Solución 2: editar app/config/doctrine.yml
Úsala solo si no puedes cambiar la extensión. Abre app/config/doctrine.yml con el administrador de archivos de cPanel y busca el apartado 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_)%'
Cambia el 1013 por 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_)%'
Respeta la sangría con espacios: YAML no admite tabuladores. Después vacía la caché borrando el contenido de var/cache/ y repite la instalación o la actualización.
El 1016 solo es correcto con pdo_mysql. Si más adelante activas nd_pdo_mysql, vuelve a poner el 1013.
Comprobar que funciona
Repite la instalación o la actualización: el paso de base de datos debe completarse sin el aviso de platform version. Si la actualización se había quedado a medias, revisa antes su registro y, si hace falta, restaura la copia que hiciste antes de empezar.
También te puede ayudar
- Conflicto con la tabla «system» de Drupal en MySQL 8 (error 1064) Soluciona el error 1064 de Drupal 6 y 7 con MySQL 8 por la tabla system, palabra reservada: actualiz...
- Joomla 1.0 y 1.5 con MySQL 8, error con la palabra reservada «groups» Haz que un Joomla 1.0 o 1.5 funcione con MySQL 8 escapando la palabra reservada groups en las consul...
- Error "Argument X passed OrderProductForViewing must be of the type string" Identifica el argumento y la fila exactos que entregan NULL al visualizar un pedido de PrestaShop, s...
- Error "Shop not found at line xxx in file classes/shop/Shop.php" Localiza Shop not found revisando la URL solicitada, shop_url y el ámbito de PS_SHOP_DEFAULT antes d...
¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.