我们已将应用程序移至新服务器,现在对于已登录的用户而言,会话期过早(不确定确切的时间)。我们尝试了许多方法来找出会话为什么在生产环境中到期,但是到目前为止,我们仍未成功。我们希望将有效期设置为20天。
我们尝试过的东西:
这是当前配置:
'Session' => [
'defaults' => 'php',
'cookie' => 'MYAPPHO',
'timeout'=> 80320, // in min
'ini' => [
'session.gc_maxlifetime' => 1728000, // in sec
'session.cookie_lifetime' => 1728000
]
]
我们也试图设置
'defaults' => 'cache'
并设置.htaccess中的值
php_value session.cookie_lifetime 1728000
php_value session.gc_maxlifetime 1728000
php_value session.cache_expire 1728000
但是行为是相同的。
我们还在Network \ Session :: _ timedOut()中进行了一些调试,但是没关系,因此永远不会过期。
有什么方法可以调试更多信息并找出导致会话过期的原因?
黑客很高兴使会话永不过期,因为届时所有被盗的会话ID都将成为解锁Web应用程序的永久密钥。
关于session.gc_maxlifetime
和session.cookie_lifetime
为何不起作用的更多详细信息,请参见here。>
无论如何,您可以通过在开始会话之前将session.gc_probability的值设置为0来做到这一点。
只需尝试重新启动应用程序服务器。有时服务器缓存的行为异常。希望这可以解决您的问题。