🛠️ Cómo solucionar el Error Fatal de Monolog y la extensión PSR en PHP
¡Hola! Si recientemente actualizaste tu sitio web a PHP 8.2 8.3 u otro y este dejó de funcionar tras activar o actualizar un plugin, es muy probable que estés enfrentando un conflicto de compatibilidad. Este problema es bastante común en cualquier plugin que utilice una herramienta interna llamada Monolog para registrar eventos.
Uno de los casos más frecuentes en los que ocurre esto es con el plugin de Transbank Webpay Plus, pero puede sucederte con otras herramientas similares.
🚨 ¿Cómo identificar este error?
Por lo general, tu sitio web mostrará una pantalla en blanco, un error 500, o si tienes el DEBUG activo, notarás un mensaje largo que menciona «Monolog\Logger» y «PsrExt». Aquí tienes el ejemplo exacto de cómo se ve este error cuando ocurre con Transbank:
Fatal error: Declaration of Monolog\Logger::emergency(Stringable|string $message, array $context = []): void must be compatible with PsrExt\Log\LoggerInterface::emergency($message, array $context = []) in /home/usuario/public_html/wp-content/plugins/transbank-webpay-plus-rest/vendor/monolog/monolog/src/Monolog/Logger.php on line 683
⚙️ ¿Por qué ocurre y cómo se soluciona?
Este error fatal ocurre debido a un choque de reglas en PHP. El plugin intenta usar su propia versión de Monolog, la cual entra en conflicto directo con una extensión instalada en el servidor llamada psr. La solución toma menos de un minuto: solo debemos desactivar la extensión psr desde tu panel de control. Esto no afectará la velocidad ni el funcionamiento de tu sitio en PremiumHosting.
✅ Solución Paso a Paso
- Ingresa a tu panel de control (cPanel o DirectAdmin) utilizando tus datos de acceso habituales.
- Desplázate hasta la sección de «Software» o «Funciones Extra» y haz clic en la herramienta Select PHP Version (Selector de PHP).
- En la parte superior de la nueva pantalla, verifica que tengas seleccionada la versión deseada PHP 8.3 por ejemplo y haz clic en la pestaña que dice Extensions (Extensiones).
- Verás una lista alfabética con muchas casillas. Busca la extensión llamada psr y haz clic sobre la marca azul para desactivarla.
- ¡Eso es todo! El sistema guarda los cambios automáticamente. Regresa a tu página web, actualízala y verás que el error ha desaparecido y tu plugin (como Transbank u otro) funcionará correctamente.
Si luego de realizar estos pasos tu sitio sigue presentando problemas, ¡no dudes en abrirnos un ticket! Nuestro equipo de soporte estará encantado de ayudarte.