Instalé un CMS, llamado Prestashop: se ejecuta bajo un dominio específico y con una configuración VirtualHost específica en Apache, en un servidor con otras aplicaciones PHP (Wordpress).
Cuando intento iniciar sesión como usuario administrador, recibo el siguiente error (este es el registro de errores de Apache):
[Wed Jan 18 00:09:16.059190 2017] [:error] [pid 31253] [client xx.xx.xx.xx:63129] PHP Fatal error: Uncaught exception 'RuntimeException' with message 'Failed to start the session: already started by PHP.' in /opt/wp/apps/prestashop/app/cache/prod/classes.php:108\nStack trace:\n#0 /opt/wp/apps/prestashop/app/cache/prod/classes.php(483): Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage->start()\n#1 /opt/wp/apps/prestashop/vendor/symfony/symfony/src/Symfony/Component/Security/Csrf/TokenStorage/SessionTokenStorage.php(90): Symfony\Component\HttpFoundation\Session\Session->start()\n#2 /opt/wp/apps/prestashop/vendor/symfony/symfony/src/Symfony/Component/Security/Csrf/CsrfTokenManager.php(54): Symfony\Component\Security\Csrf\TokenStorage\SessionTokenStorage->hasToken('ANONYMOUS_USER')\n#3 /opt/wp/apps/prestashop/app/cache/prod/classes.php(8196): Symfony\Component\Security\Csrf\CsrfTokenManager->getToken('ANONYMOUS_USER')\n#4 /opt/wp/apps/prestashop/classes/Link.php(722): PrestaShopBundle\Service\Routing\Router->generate('admin_product_c...')\n#5 /opt/wordpre in /opt/wp/apps/prestashop/app/bootstrap.php.cache on line 3216, referer: http://www.xxxxx.xx/adminXXX/index.php?controller=AdminLogin&token=181fa270d47386a8d523bdea6213932c&redirect=AdminDashboard'
El error se recupera mediante una versión estable de Prestashop, por lo que no creo que pueda depender de un problema de código. ¿Es que WordPress primero abre una sesión y luego Symfony (Prestashop) encuentra la sesión ya abierta? De hecho, el dominio principal es atendido por WP. También intento definir una ruta específica para Prestashop VirtualHost:https://stackoverflow.com/questions/18262878/how-to-prevent-php-sessions-being-shared-between- Different-apache-vhosts Lamentablemente no funciona.
El parámetro auto_start de la sesión PHP está establecido en 0 en php.ini.
No entiendo cómo puedo solucionar este problema. ¿Puede depender de una configuración de Apache o PHP?
Muchas gracias.
Respuesta1
Tienes algunos caracteres fuera de tu PHP, antes del comando session_start. ¿Es probable que haya espacios después de la etiqueta de cierre?>
Es por esto que las etiquetas de cierre no deben estar al final del archivo, esto ha sido codificado en el estándar PSR2.
Asegúrese de cargar todos los archivos con la configuración FTP correcta y verifique si hay cambios accidentales. En el peor de los casos, ponga var_dump(headers_sent().__FILE_d); en todos los archivos incluidos antes de su mensaje de error.