在我的.htaccess文件中,我设置了
php_value session.gc_maxlifetime 14400
即。持续4个小时
如果我使用echo ini_get('session.gc_maxlifetime');
进行验证,我会收到14400.但是我的会话仍然会在不到2小时内到期。
你认为这里出了什么问题?任何帮助赞赏。感谢
答案 0 :(得分:6)
某些发行版(至少Debian)有一个cronjob,可以定期删除旧会话。这个cronjob从系统的php.ini中获取session.gc_maxlifetime
设置,从而忽略你的vhost配置。
解决方案:
session.gc_maxlifetime
(例如/etc/php5/apache2/php.ini
)session.save_path
)
session.cookie_lifetime
变量至少等于session.gc_maxlifetime
(或0
)。答案 1 :(得分:0)
如果您使用的是Debian计算机,则可能会自动安装cronjob,删除会话。请看this SO question,特别是Paul Dixon的答案。