这里类似的简单但没有答案的问题: cakephp session no new files in tmp/sessions
我在本地WAMP服务器上运行Cake 2.4.x.我的phpinfo()显示了 c:/ wamp / tmp 的session.save_path。我已经验证了这一点,登录会话当前有在c:/ wamp / tmp /中创建的会话文件。
我尝试转换为使用蛋糕会话处理。根据{{3}},使用' cake'会话处理 - 将会话保存为app / tmp / sessions中的文件。如果主机不允许您在自己的家庭目录外写字,这是一个不错的选择。
所以我把这段代码放在我的Core.php
中 Configure::write('Session', array(
'defaults' => 'cake'
));
问题是我仍然没有看到任何出现在我的app / tmp / sessions目录下的内容,但我仍然看到在我的c:\ wamp \ tmp目录中创建了会话文件。
问题: 如何让Cakephp开始将会话写入应用程序目录?
干杯 凯文
答案 0 :(得分:3)
通过创建2个cakephp教程博客重新开始并为可怕的会话共享并排测试它,我意识到以下代码在相应的cakephp安装app / tmp / sessions文件夹中创建会话文件。
Configure::write('Session', array(
'defaults' => 'cake'
));
但由于它不适合我现有的应用程序,我只能得出结论,我现有的应用程序是问题所在。
在所有安装上查看phpinfo()也告诉我,cakeblog教程成功地覆盖了php.ini中的session.save_path值,更简单的是我的实际cakephp应用程序具有相同的本地session.save_path主会话值.save_path值(来自php.ini)。 这意味着我使用蛋糕会话的core.php设置被覆盖了!!!!!
经过数小时的调查后,我找到了罪魁祸首。
我的app / webroot / index.php中有一行代码,我在几个月前插入了。
session_start();
我插入的session_start()基本上是用原始的php.ini设置覆盖了我的cake core.php设置。这个" session_start()"我放在那里最初是为了克服一个登录循环错误,我用IE和Bluehost.com作为主机。我评论过该行和会话文件开始出现在app / tmp / sessions文件夹中。
HALLELUJAH!
答案 1 :(得分:1)
我第一次看到这个问题。你能测试一下:
Configure::write('Session', array(
'defaults' => 'php',
'ini' => array(
'session.cookie_path' => '/app/tmp/sessions'
)
));