Ошибка CakePHP: невозможно настроить сеанс, не удалось установить session.auto_start

Я получаю эту ошибку:

Error: [CakeSessionException] Unable to configure the session, setting session.auto_start failed.

Я использую CakePHP 2.2.4.

РЕДАКТИРОВАТЬ

Кажется, у этого парня была такая же проблема: Cakephp Session error на live-сайте и использование этого

 if(!isset($_SESSION)) session_start(); 

внутри метода beforefilter AppController исправить ошибку.

Поэтому мой вопрос: почему это произошло? Все работало нормально, а затем грубо, эта ошибка появилась. Кроме того, я понял, что папка app/tmp/sessions пуста, и я настроил сеанс, который будет обрабатываться Cake (в Config/core.php ).

В PHP версии 5.4.19 – разработчики закрыли возможность установки параметра session.auto_start из пользовательского скрипта.

CakePHP удалил эту опцию из конфигурации сеанса по умолчанию только в версии 2.4.0.

Таким образом, у вас есть 3 основных варианта: обновить CakePHP, понизить PHP или использовать стандартный сеанс php.

Ответ Андрея Струка верен. Он сказал: « Итак, у вас есть 3 основных варианта: обновить CakePHP, понизить PHP или использовать стандартные сеансы PHP.

Но есть 4-й вариант , вы можете просто прокомментировать одну строку в /lib/Cake/Model/Datasource/CakeSession.php (около строки 557):

 // 'session.auto_start' => 0, 

Это останавливает Cake, вызывающий ini_set() в этом параметре, и предотвращает фатальную ошибку.

Как сказал ответ Андрея , вы должны обновить CakePHP или понизить PHP. Однако, если вы не хотите или не имеете возможности, вам нужно перенастроить сеанс Cake, чтобы он использовал стандартные сессии PHP, а не сессию Cake.

приложение / Config / core.php

 Configure::write('Session', array( 'defaults' => 'cake', // You need to change the value of this to 'php' 'timeout' => 120, 'cookieTimeout' => 20160, 'checkAgent' => false )); 

В файле php.ini попробуйте установить session.auto_start в 1.

поскольку у меня недостаточно репутации для комментариев, я добавляю следующий ответ в дополнение к Симону:

чтобы заставить его работать, мне пришлось прокомментировать все три вхождения «session.auto_start» => 0 (вокруг и после строки 557 в CakeSession.php)

Для получения дополнительной информации см. Следующий патч команды CakePHP: https://github.com/cakephp/cakephp/commit/faa2cbd3c3fc1bbf83064727847789123110b8e3#diff-bd8dc176fa0f41743dbaafa75f77b5ae