我有一个用PHP
写的CodeIgnitor 3
网站。我将会话存储在数据库表中。问题是会议'在白天约30-40分钟的生命之后,以及在晚上约60-80分钟后摧毁。最旧的会话只会从桌面上删除,而其他会话仍然存在。
我的配置:
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = '<cookie_name>';
$config['sess_expiration'] = 0;
$config['sess_save_path'] = '<table_name>';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 30000;
$config['sess_regenerate_destroy'] = FALSE;
早些时候我使用的是Codeigniter 2
,问题是一样的。
答案 0 :(得分:0)
我自己解决了我的问题。官方文档中有错误。如果我将$config['sess_expiration']
设置为0
,则CodeIgniter
会从 php.ini 文件中获取sess_expiration
参数(突然!)。因此,设置$config['sess_expiration'] = $config['sess_time_to_update']
可以解决我的问题。
CodeIgniter
覆盖garbage collector
,在请求到网站时以1%的几率运行,这就是为什么会话在晚上的寿命更长。