Ir al contenido principal

Error 500 en el backoffice de PrestaShop 9.x: módulos incompatibles con la versión de PHP del hosting

Escrito por Javier Galeote

Síntomas

Tras completar una instalación nueva de PrestaShop 9.x (por ejemplo, sobre un subdominio de desarrollo) o al activar ciertos módulos preinstalados con la tienda, el backoffice deja de cargar y devuelve un error HTTP 500. Desde la tienda no se puede navegar por ninguna opción del panel de administración y, al intentar acceder, el navegador queda en blanco o con el mensaje genérico de error del servidor.

Causa real

PrestaShop 9.x incluye de serie módulos oficiales (como ps_checkout) que requieren una versión mínima de PHP 8.2 o superior. Si el dominio del hosting está ejecutándose con una versión de PHP anterior (8.0, 8.1, etc.), el módulo no se puede compilar y rompe todo el backoffice.

En el log de errores del backoffice aparece una traza similar a esta:

  • Archivo de log: var/logs/prod-YYYY-MM-DD.log

  • Mensaje clave: Symfony ErrorHandler FatalError "Compile Error: Null can not be used as a standalone type"

  • Ruta afectada: modules/ps_checkout/vendor/webmozart/assert/src/Assert.php

El "Compile Error: Null can not be used as a standalone type" es la pista definitiva: la sintaxis null como tipo independiente (standalone null type) solo se introdujo en PHP 8.2, así que cualquier versión anterior falla al cargar el módulo.

Cómo solucionarlo

1. Cambiar la versión de PHP del dominio a 8.2 o superior

Desde cPanel, accede a Software > Select PHP Version (o MultiPHP Manager en los servidores administrados) y selecciona el dominio afectado. Cambia la versión a PHP 8.2 como mínimo y guarda.

2. Limpiar la caché de PrestaShop

Después de cambiar la versión de PHP, borra el contenido de var/cache/prod por FTP o desde el Administrador de Archivos de cPanel, para forzar la recompilación de contenedores y clases.

3. Verificar el backoffice

Entra al backoffice y navega por varias opciones del menú (Pedidos, Catálogo, Módulos). Si todo carga sin errores, el problema está resuelto.

Cuándo contactar con soporte

Si al cambiar la versión de PHP el dominio deja de servir la tienda en el frontend, si no ves disponible PHP 8.2 en tu plan, o si el error 500 persiste tras limpiar la caché, abre un ticket con soporte indicando:

  • Dominio afectado y ruta de la tienda (raíz o subdominio)

  • Versión exacta de PrestaShop (9.x.x)

  • Versión de PHP que tenías antes del fallo y versión a la que has cambiado

  • Las últimas líneas del log var/logs/prod-YYYY-MM-DD.log

Recomendaciones adicionales

  • Instalaciones nuevas de PrestaShop 9.x: crea el dominio o subdominio ya con PHP 8.2 o superior antes de descargar PrestaShop.

  • Migraciones desde PrestaShop 8.x o anterior: revisa los requisitos de PHP de todos los módulos de terceros y oficiales antes de activarlos, no solo el core de PrestaShop.

  • Desarrollo y producción en distinta versión: asegúrate de que el subdominio de desarrollo y el dominio de producción usan la misma versión de PHP para evitar sorpresas al pasar la tienda a producción.

¿Ha quedado contestada tu pregunta?