CakePHP错误:无法配置会话,设置session.auto_start失败

时间:2013-09-25 12:06:10

标签: php session cakephp cakephp-2.2

我收到了这个错误:

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

我正在使用Cakephp 2.2.4。

修改

看来这家伙有同样的问题:Cakephp Session error on live site并使用此

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

beforefilter AppController方法中的app/tmp/sessions修正错误。

所以我的问题是:为什么会这样?一切都工作正常,然后突然出现这个错误。 另外我已经意识到文件夹Config/core.php是空的,我已将会话配置为由Cake处理(在{{1}}中)。

5 个答案:

答案 0 :(得分:27)

Andriy Struk的回答是正确的。他说:所以你有3个主要选择:升级CakePHP,降级PHP或使用标准的PHP会话。

但是有第四个选项,您只需在/lib/Cake/Model/Datasource/CakeSession.php(第557行)附近注释掉一行:

// 'session.auto_start' => 0,

在该设置上停止Cake调用ini_set(),并防止致命错误。

答案 1 :(得分:21)

在PHP版本5.4.19中 - 开发人员关闭了从用户脚本设置session.auto_start选项的功能。

CakePHP仅在2.4.0版本中从默认会话配置中删除了此选项。

所以你有3个主要选择:升级CakePHP,降级PHP或使用标准的php会话。

答案 2 :(得分:8)

作为Andriy's answer says,您应升级CakePHP或降级PHP。但是,如果您不想要或不想要选项,则需要重新配置Cake会话,以便它使用标准的PHP会话而不是Cake的会话。

应用/配置/ core.php中

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

答案 3 :(得分:5)

在php.ini文件中,尝试将session.auto_start设置为1。

答案 4 :(得分:1)

由于我没有足够的声誉来评论,除了西蒙的一个之外,我还添加了以下答案:

为了让它正常工作,我不得不评论所有三个的出现     ' session.auto_start' => 0 (在CakeSession.php第557行左右)

有关详细信息,请参阅CakePHP团队的以下补丁: https://github.com/cakephp/cakephp/commit/faa2cbd3c3fc1bbf83064727847789123110b8e3#diff-bd8dc176fa0f41743dbaafa75f77b5ae