CDbHttpSession和CHttpSession似乎都在相当短的时间(少于12小时)之后忽略了超时值和垃圾收集数据。可能是什么问题呢?
'session' => array(
'class'=> 'CDbHttpSession',
'autoCreateSessionTable' => true,
'autoStart'=>true,
'timeout' => 1209600,
'cookieMode' => 'only',
'sessionName' => 'ssession',
),
答案 0 :(得分:1)
可能这就是你要找的东西
中的设置CHttpSession的超时只是设置 session.gc_maxlifetime PHP设置。如果您运行您的应用程序或 Debian或Ubuntu,他们的默认PHP禁用了垃圾收集器 并运行一个cron工作来清理它。
在我的应用程序中,我将session dir设置在protected / runtime中的某个位置 将我的会话与其他应用分开。这对共享非常重要 托管网站,它是一个很好的习惯。缺点是我必须这样做 记得设置一个cronjob来清理该文件夹中的文件。
无论如何,您还应该在调用CWebUser.login时设置超时 登录用户。
duration
参数