我得到这个错误: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();
在AppController
的beforefilter
方法中修复错误。
所以我的问题是:为什么会发生这种情况?一切都运行正常,然后突然出现这个错误。另外,我意识到文件夹app/tmp/sessions
是空的,我已经配置了由Cake(在Config/core.php
中)处理的会话。
6条答案
按热度按时间iqjalb3h1#
安德烈·斯特鲁克的回答是正确的。他说:* 因此,您有3个主要选项:升级CakePHP、降级PHP或使用标准PHP会话。*
但是还有第四个选项,您可以简单地注解掉
/lib/Cake/Model/Datasource/CakeSession.php
中的一行(第557行附近):这将阻止Cake在该设置上调用
ini_set()
,并防止致命错误。vfhzx4xs2#
在PHP版本5.4.19中-开发人员关闭了session.auto从用户脚本设置www.example.com _start选项的功能。
CakePHP仅在2.4.0版本中从默认会话配置中删除了此选项。
因此,您有3个主要选项:升级CakePHP、降级PHP或使用标准php会话。
pqwbnv8z3#
正如Andriy的回答所说,您应该升级CakePHP或降级PHP。但是,如果您不想或没有选择,您需要重新配置您的Cake会话,使其使用标准PHP会话而不是Cake的会话。
应用程序/配置/核心.php
fnx2tebb4#
在php.ini文件中,尝试将
session.auto_start
设置为1。kb5ga3dv5#
由于我没有足够的声誉来评论,除了西蒙的答案之外,我还补充了以下答案:
为了让它工作,我必须注解掉所有三个'session.auto_start' =〉0(在CakeSession.php中的第557行前后)
有关详细信息,请参阅CakePHP团队的以下修补程序:https://github.com/cakephp/cakephp/commit/faa2cbd3c3fc1bbf83064727847789123110b8e3#diff-bd8dc176fa0f41743dbaafa75f77b5ae
jpfvwuh46#
查找以下代码并注解所有行
/lib/Cake/Model/Datasource/CakeSession.php
如果(空的($_SESSION)&&!发送的头()&&(!函数存在('会话状态')||会话状态()!== PHP会话活动)){如果如果您在创建新的会话时遇到了错误,请单击“取消”按钮。我的天!