会话在 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']
设置为 0
,CodeIgniter
从 php.ini 文件中获取 sess_expiration
参数(突然!)。所以,设置 $config['sess_expiration'] = $config['sess_time_to_update']
解决了我的问题。
CodeIgniter
覆盖了 garbage collector
,后者在请求站点期间以 1% 的几率运行,这就是为什么会议在晚上持续时间更长的原因。
感谢参与讨论的每个人。
我有一个 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']
设置为 0
,CodeIgniter
从 php.ini 文件中获取 sess_expiration
参数(突然!)。所以,设置 $config['sess_expiration'] = $config['sess_time_to_update']
解决了我的问题。
CodeIgniter
覆盖了 garbage collector
,后者在请求站点期间以 1% 的几率运行,这就是为什么会议在晚上持续时间更长的原因。感谢参与讨论的每个人。