所以在这个zend 1应用程序中,当我进入开始页面时,我可以看到有一个名为PHPSESSID
的cookie。
然后我登录(自定义登录),用户可以浏览受保护的页面。
但如果他处于非活动状态超过30分钟,那么当请求受保护的页面时,应用程序会将其重定向到登录页面。
我关注的是PHPSESSID
。最初设定为30分钟。我通过将“28800”添加到似乎是setcookie
的全局调用中来增加它。
当我重新加载页面时,我可以看到PHPSESSID
将在8小时后过期。
尽管如此,使用仍然在30分钟后退出。
因此,更改cookie过期并没有给出任何结果。
下一步是什么?更改php会话持续时间?
目前的相关价值是:
session.cache_expire: 180
session.gc_divisor: 1000
session.entropy_length:32
session.gc_maxlifetime: 14400
session.gc_probability:1
session.name: PHPSESSID
或者这与框架本身有关吗?在Zend的某个地方调整会话的到期时间?
答案 0 :(得分:1)
如果您正在使用zend,请尝试此操作。
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
$authns = new Zend_Session_Namespace($auth->getStorage()->getNamespace());
$authns->setExpirationSeconds(60 * 30); //expire auth storage after 30 min
}
答案 1 :(得分:1)
如果你有多个php站点在同一个目录中存储会话文件 - php gc进程可能有不同的会话集。在这种情况下,将会话文件存储在另一个,仅适用于您的站点目录。