这真的很困扰我。已经很多年了。无论我对 core.php 或 php.ini 做什么,我的登录通常会在大约一个小时后超时。某些相同代码和配置的部署会在相当长的时间后超时。
这是我目前在一个网站上的内容 - 大约一个小时后超时:
session.gc_divisor 1000
session.gc_maxlifetime 86400
session.gc_probability 1
Configure::write('Session.timeout', '28800');
Configure::write('Session.checkAgent', false);
Configure::write('Security.level', 'medium');
还有一个——持续了一整夜:
session.gc_divisor 100
session.gc_maxlifetime 14400
session.gc_probability 0
Configure::write('Session.timeout', '315360000');
Configure::write('Session.checkAgent', false);
Configure::write('Security.level', 'medium');
现在,在您兴奋地说“嗯,答案就在 Session.timeout 值中”之前,让我告诉您,该网站通常会在大约二十分钟后超时!
我在某处读到,在共享主机上,其他应用程序可以通过清除 php 定义的会话目录来重置会话。罗尔夫在回答中提到了这一点。
CakePHP 提供了配置会话处理方式的选项。在core.php
我把这个改为'cake'
(默认情况下是'php'
):
/**
* The preferred session handling method. Valid values:
*
* 'php' Uses settings defined in your php.ini.
* 'cake' Saves session files in CakePHP's /tmp directory.
* 'database' Uses CakePHP's database sessions.
*/
Configure::write('Session.save', 'cake');
我还确保会话超时和相应的 php.ini 值相同:
/**
* Session time out time (in seconds).
* Actual value depends on 'Security.level' setting.
*/
Configure::write('Session.timeout', '86400');
到目前为止,系统还没有退出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)