1

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

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

致命错误:未捕获的异常“Zend_Session_Exception”与消息“会话已由 session.auto-start 或 session_start() 启动”
    在 /var/www/vhosts/FakeSite.com/httpdocs/library/Zend/Session.php:462
堆栈跟踪:
#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 在 /var/www/vhosts/FakeSite.com/httpdocs/library/Zend/Session.php 462 行

会话路径是可写的,如果你坚持一种协议,它似乎工作得很好。没有 session_start() 调用,并且 session.auto-start 为 0。

代码在其他 3 台服务器上运行良好。应该是配置问题,但是一直没找到

4

3 回答 3

2

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

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

于 2012-02-04T15:12:10.207 回答
2

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

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

phpSettings.session.auto_start = 0
于 2011-04-05T23:14:11.303 回答
1

我终于想通了。

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

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

于 2011-04-06T15:51:29.137 回答