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

Enr*_*cos 19 php session cakephp cakephp-2.2

我收到这个错误:

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

我正在使用Cakephp 2.2.4.

编辑

看来这家伙有同样的问题:现场网站上的Cakephp Session错误并使用它

if(!isset($_SESSION)) session_start(); 
Run Code Online (Sandbox Code Playgroud)

内部修复错误的beforefilter方法AppController.

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

Sim*_*ast 27

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

但是有第四个选项,你可以简单地注释掉一行/lib/Cake/Model/Datasource/CakeSession.php(在第557 行附近):

// 'session.auto_start' => 0,
Run Code Online (Sandbox Code Playgroud)

这会阻止Cake调用ini_set()该设置,并防止致命错误.


小智 21

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

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

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


Bad*_*sie 8

正如Andriy的回答所说,你应该升级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 
));
Run Code Online (Sandbox Code Playgroud)


小智 5

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