新服务器:Zend_Session_Exception“会话已经启动”http到https&反之亦然

时间:2011-04-05 22:02:35

标签: zend-framework zend-session

我正在尝试将网站移至新主机(MediaTemple。)

当你坚持使用http或https时,一切都很好。从http-> https或https-> http开始时,您会收到错误消息。

Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'session has already been started by session.auto-start or session_start()' 
    in /var/www/vhosts/FakeSite.com/httpdocs/library/Zend/Session.php:462 
Stack trace: 
#0 /var/www/vhosts/FakeSite.com/httpdocs/library/Zend/Session/Namespace.php(143): Zend_Session::start(true) 
#1 /var/www/vhosts/FakeSite.com/httpdocs/library/Zend/Auth/Storage/Session.php(87): Zend_Session_Namespace->__construct('Zend_Auth') 
#2 /var/www/vhosts/FakeSite.com/httpdocs/library/Zend/Auth.php(91): Zend_Auth_Storage_Session->__construct() 
#3 /var/www/vhosts/FakeSite.com/httpdocs/library/Zend/Auth.php(141): Zend_Auth->getStorage() 
#4 /var/www/vhosts/FakeSite.com/httpdocs/application/layouts/layout.phtml(12): Zend_Auth->hasIdentity() 
#5 /var/www/vhosts/FakeSite.com/httpdocs/library/Zend/View.php(108): include('/var/www/vhosts...') 
#6 /var/www/vhosts/FakeSite.com/httpdocs/library/Zend/View/Abstract.php(831): Zend_View->_run('/var/www/vhosts...') 
#7 /var/www/vh in /var/www/vhosts/FakeSite.com/httpdocs/library/Zend/Session.php on line 462 

会话路径是可写的,如果您坚持使用一个协议,它似乎工作正常。没有session_start()调用,session.auto-start为0。

代码在其他3台服务器上正常运行。它必须是配置问题,但我一直无法找到它

3 个答案:

答案 0 :(得分:2)

当然看起来服务器配置了session.auto_start = 1。

所以,也许可以添加到configs/application.ini

phpSettings.session.auto_start = 0

答案 1 :(得分:2)

我认为你有一个插件(或其他库),它调用session_start()函数

我在尝试创建facebook资源时遇到了同样的问题

答案 2 :(得分:1)

我终于想到了。

问题是http上的PHP是作为Apache模块运行的,而https上的PHP是作为FastCGI模块运行的。

我认为那些在MediaTemple上以不同用户身份运行。会话将由一个创建,而另一个用户无法读取,因为另一个用户拥有该文件。