20

我收到此错误:

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

我正在使用 Cakephp 2.2.4。

编辑

看来这家伙有同样的问题:Cakephp Session error on live site and using this

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

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

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

4

5 回答 5

28

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

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

// 'session.auto_start' => 0,

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

于 2014-01-28T00:18:33.043 回答
21

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

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

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

于 2013-10-21T12:54:08.227 回答
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 
));
于 2013-09-29T21:35:46.770 回答
7

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

于 2014-05-22T08:29:54.350 回答
1

由于我没有足够的声誉发表评论,因此除了西蒙的答案之外,我还添加了以下答案:

为了让它工作,我必须注释掉所有三个出现的 'session.auto_start' => 0 (在 CakeSession.php 中的第 557 行前后)

详情参见CakePHP团队的以下补丁: https ://github.com/cakephp/cakephp/commit/faa2cbd3c3fc1bbf83064727847789123110b8e3#diff-bd8dc176fa0f41743dbaafa75f77b5ae

于 2015-03-05T14:24:19.817 回答