Новый сервер: сеанс Zend_Session_Exception «сеанс уже запущен» http на https и наоборот - PullRequest
1 голос
/ 06 апреля 2011

Я пытаюсь переместить веб-сайт на новый хост (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 ]

2 голосов
/ 04 февраля 2012

Я думаю, что у вас есть плагин (или другая библиотека), который вызывает session_start() function

У меня была такая же проблема, когда пытался создать фейсбук ресурс

2 голосов
/ 06 апреля 2011

Конечно, похоже, что сервер настроен с session.auto_start = 1.

Итак, возможно, добавим к configs/application.ini:

phpSettings.session.auto_start = 0
1 голос
/ 06 апреля 2011

Я наконец понял это.

Проблема заключалась в том, что PHP на http работал как модуль Apache, а PHP на https работал как модуль FastCGI.

Я полагаю, что те, кто работает в MediaTemple или как-то еще, запускаются как разные пользователи. Сеанс будет создан одним и не сможет быть прочитан другим, поскольку файл принадлежит другому пользователю.

...