Cakephp 2.4在10%的案例中失去了会话变量

时间:2015-08-14 13:16:45

标签: php session cakephp cakephp-2.0

我正在使用Apache,PHP 5.4和Cakephp 2.4。最近我的会话随机问题。

我的查询基于存储在会话中的变量,每10-15页一次,我收到一条严重错误,说明mysql查询失败,因为它无法在数据库中找到该字段。此字段名称存储在会话中,这就是为什么我怀疑它是我的会话设置的问题。此外,当我收到错误并刷新页面2或3次时,它最终加载并以某种方式会话#34;恢复" 它是一个电子商务应用程序,购物车保存在会话中。即使商品在购物车中,我也会收到该错误并刷新页面,购物车仍然保存正常,因此会话不会完全丢失。好像它几乎消失了几秒钟。

我的蛋糕设置如下:

Configure::write('Session', array(
    'defaults' => 'php'
));

在我的php.ini中我已经改变了

  session.save_handler = memcache 
  to 
  session.save_handler = files

但它没有帮助。当我直接在我的网址中添加一个链接并且没有重定向链接时,我也会遇到这个问题,因此重定向失败的问题不再是此论坛之前讨论过的会话。

我还应该看看其他什么想法?

2 个答案:

答案 0 :(得分:0)

多年前我遇到了类似的问题,我随机丢失了会话变量。事实证明,由于与负载平衡相关的原因,我的ISP在多个服务器上运行了一个PHP实例。在会话开始时,会话变量将仅保存在其中一个服务器上。如果来自浏览器的请求来自不同的服务器,则找不到会话变量。

我通过在每个脚本的开头放置session_save_path(' / tmp')命令然后立即运行session_start()命令来解决问题。我创造了' tmp'我私人的public_html空间中的文件夹。这解决了这个问题。

这是在我的蛋糕前几天,所以我没有想过如何在蛋糕环境中解决这个问题,但希望它能让你在某个地方看。

答案 1 :(得分:0)

事实证明最近安装APM的原因。感谢您的支持