Php 会话被随机破坏
我有一个CakePHP 3.6应用程序,本地托管在Apache2上,生产中托管在Nginx上。 我最近在访问网站时发现一个问题,正常浏览时会话被随机破坏。这种情况经常发生(点击3/4链接)。 我以前从未遇到过这个问题,在出现这个问题之前,我没有改变任何具体的事情。 有时我会犯这样的错误:Php 会话被随机破坏,php,session,cakephp,cakephp-3.0,Php,Session,Cakephp,Cakephp 3.0,我有一个CakePHP 3.6应用程序,本地托管在Apache2上,生产中托管在Nginx上。 我最近在访问网站时发现一个问题,正常浏览时会话被随机破坏。这种情况经常发生(点击3/4链接)。 我以前从未遇到过这个问题,在出现这个问题之前,我没有改变任何具体的事情。 有时我会犯这样的错误: 警告(2):会话重新生成会话id():会话对象销毁失败。 但大多数情况下,日志中没有任何错误 你能帮我找到这是从哪里来的吗?确保你在页面之间“不”切换HTTP和HTTPS模式。问题是我在AppControl
警告(2):会话重新生成会话id():会话对象销毁失败。
但大多数情况下,日志中没有任何错误
你能帮我找到这是从哪里来的吗?确保你在页面之间“不”切换HTTP和HTTPS模式。问题是我在AppController.php中使用了
$this->Auth->setUser()。我不认为它来自CakePHP对不起:/
因此,解决方案是在AppController的beforeFilter()中不使用与身份验证相关的函数或至少使用setUser。嗨,不是没有看到代码小说明我认为有一个与您的实时环境相匹配的开发服务器会更有意义,那么您可能会有一些方法来测试这种奇怪的情况APC打开了吗?用火杀死它,因为某些原因,Nginx和apc不能很好地配合。另外,尝试重新启动fpm。同意@RiggsFolly。即使由于某些原因无法使dev与prod匹配,至少也要使用相同的堆栈:-)如果您希望看到代码的哪一部分?Aldo APC已关闭,apache和nginx的问题在于此,因此它似乎不具体。我检查了,我没有:/您还应该检查生产服务器存储会话数据的位置,以及该分区上的空间是否不足。这是导致会话丢失的一个非常常见的原因。它使用/tmp/但即使在Redis中存储会话,问题仍然存在