我们刚刚将Symfony2.3项目移动到另一台服务器,现在我们遇到了以下问题:
路由/login
和_wdt/9d5405
会导致Google Chrome(以及显示其特定错误消息的所有其他浏览器)出现ERR_EMPTY_RESPONSE错误。错误发生在prod和dev环境中。
我从loginAction
中追踪了这个问题/**
* @Route("/login", name="login")
* @Route("/login/{redirect}", name="login_redirect")
* @Template()
*/
public function loginAction($redirect = '')
{
if ($this->getUser())
{
return $this->redirect($this->generateUrl('crea_frontend_index'));
}
$request = $this->getRequest();
$session = $request->getSession();
// get the login error if there is one
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR))
{
$error = $request->attributes->get(
SecurityContext::AUTHENTICATION_ERROR
);
}
else
{
$error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
$session->remove(SecurityContext::AUTHENTICATION_ERROR);
}
$redirect = urldecode($redirect);
return array(
'last_username' => $session->get(SecurityContext::LAST_USERNAME), // last username entered by the user
'redirect' => $redirect,
'error' => $error,
);
}
此行产生错误:
$error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
我追踪到了
Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
并在第148行if (!session_start()) {
。
因此,此时会发出session_start会产生错误,但是当我向app.php添加session_start();
并对其他所有内容进行评论时。
现在我对如何解决这个问题感到很困惑。关于如何解决这个问题或者如何进一步调试的任何想法都会非常受欢迎。
更新
错误似乎与这些错误讨论有关: https://bugs.launchpad.net/ubuntu/+source/php5/+bug/424789 https://bugs.gentoo.org/show_bug.cgi?id=276583
更新
已解决:问题是PHP版本5.4.20。我们测试了5.3.17和5.5.9。两者都运作良好。除5.4.20外。但我仍然想知道exaclty会导致这个错误。这可能导致Symfony修复以处理此版本。