Подтвердить что ты не робот

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

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

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

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

ИЗМЕНИТЬ

Кажется, у этого парня была такая же проблема: Ошибка сеанса CakePHP на реальном сайте и используя этот

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

// 'session.auto_start' => 0,

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

Ответ 3

Как Андрей отвечает, вы должны обновить 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 
));

Ответ 4

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

Ответ 5

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

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

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