我收到了这个错误:
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}}中)。
答案 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