我正在尝试将网站移至新主机(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台服务器上正常运行。它必须是配置问题,但我一直无法找到它
答案 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上以不同用户身份运行。会话将由一个创建,而另一个用户无法读取,因为另一个用户拥有该文件。