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

pprl5pva  于 2022-11-11  发布在  PHP
关注(0)|答案(6)|浏览(160)

我得到这个错误:
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();

AppControllerbeforefilter方法中修复错误。
所以我的问题是:为什么会发生这种情况?一切都运行正常,然后突然出现这个错误。另外,我意识到文件夹app/tmp/sessions是空的,我已经配置了由Cake(在Config/core.php中)处理的会话。

iqjalb3h

iqjalb3h1#

安德烈·斯特鲁克的回答是正确的。他说:* 因此,您有3个主要选项:升级CakePHP、降级PHP或使用标准PHP会话。*

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

// 'session.auto_start' => 0,

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

vfhzx4xs

vfhzx4xs2#

在PHP版本5.4.19中-开发人员关闭了session.auto从用户脚本设置www.example.com _start选项的功能。
CakePHP仅在2.4.0版本中从默认会话配置中删除了此选项。
因此,您有3个主要选项:升级CakePHP、降级PHP或使用标准php会话。

pqwbnv8z

pqwbnv8z3#

正如Andriy的回答所说,您应该升级CakePHP或降级PHP。但是,如果您不想或没有选择,您需要重新配置您的Cake会话,使其使用标准PHP会话而不是Cake的会话。

应用程序/配置/核心.php

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

fnx2tebb4#

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

kb5ga3dv

kb5ga3dv5#

由于我没有足够的声誉来评论,除了西蒙的答案之外,我还补充了以下答案:
为了让它工作,我必须注解掉所有三个'session.auto_start' =〉0(在CakeSession.php中的第557行前后)
有关详细信息,请参阅CakePHP团队的以下修补程序:https://github.com/cakephp/cakephp/commit/faa2cbd3c3fc1bbf83064727847789123110b8e3#diff-bd8dc176fa0f41743dbaafa75f77b5ae

jpfvwuh4

jpfvwuh46#

查找以下代码并注解所有行
/lib/Cake/Model/Datasource/CakeSession.php
如果(空的($_SESSION)&&!发送的头()&&(!函数存在('会话状态')||会话状态()!== PHP会话活动)){如果如果您在创建新的会话时遇到了错误,请单击“取消”按钮。我的天!

相关问题