我尝试在Symfony 3(http://symfony.com/doc/current/doctrine/pdo_session_storage.html)中配置会话,并且我收到此错误:
Error: session_start(): Failed to initialize storage module: user (path: )
500 Internal Server Error - FatalErrorException
Stack Trace
in var/cache/dev/classes.php at line 113
110. if (ini_get('session.use_cookies') && headers_sent($file, $line)) {
111. throw new \RuntimeException(sprintf('Failed to start the session because headers have already been sent by "%s" at line %d.', $file, $line));
112. }
113. if (!session_start()) {
114. throw new \RuntimeException('Failed to start the session');
115. }
116. $this->loadSession();
你有什么想法,为什么会出现?
答案 0 :(得分:0)
最近我在使用docker容器运行的symfony时出现了类似的问题。我的理由是PdoSessionHandler无法连接到数据库。在官方教程中,他们展示了一个在DSN中没有主机密钥的示例,这可能适用于大多数安装。最后,我的服务定义看起来像这样:
Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler:
arguments:
- 'mysql:dbname=%database_name%;host=%database_host%'
- { db_username: '%database_user%', db_password: '%database_password%' }
我希望它有所帮助!
答案 1 :(得分:0)
我找到了解决方案。 在我的数据库服务器的docker配置中我使用socket,所以我只需要将它添加到我的config.yml文件中:
parameters:
database_unix_socket: /.../mysqld.sock
然后在doctrine.dbal.unix_socket:
中使用此配置doctrine:
dbal:
unix_socket: '%database_unix_socket%'
干杯, 伊凡。