会话在 CodeIgniter 中销毁

Sessions destroys in CodeIgniter

我有一个 PHP 网站是用 CodeIgnitor 3 编写的。我将会话存储在数据库 table 中。问题是会话在白天大约 30-40 分钟后以及晚上大约 60-80 分钟后被破坏。最旧的会话刚刚从 table 中删除,而其他会话仍然存在。

我的 config:

$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,问题是一样的。

我自己解决了我的问题。官方文档有一个错误。如果我将 $config['sess_expiration'] 设置为 0CodeIgniterphp.ini 文件中获取 sess_expiration 参数(突然!)。所以,设置 $config['sess_expiration'] = $config['sess_time_to_update'] 解决了我的问题。


CodeIgniter 覆盖了 garbage collector,后者在请求站点期间以 1% 的几率运行,这就是为什么会议在晚上持续时间更长的原因。

感谢参与讨论的每个人。