CodeIgniter在服务器tmp文件夹中生成太多会话文件

时间:2019-03-23 15:18:16

标签: php codeigniter

我不知道为什么,但是我的CodeIgniter应用程序在服务器tmp文件夹中创建了太多ci_sessions文件。至少每分钟1000个会话文件。似乎没有删除旧的会话文件

我正在使用此设置

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 0;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 1000;
$config['sess_regenerate_destroy'] = TRUE;

如何摆脱这个问题?

enter image description here

2 个答案:

答案 0 :(得分:0)

解决方案

添加此代码

ini_set('session.save_path',realpath(dirname($_SERVER['DOCUMENT_ROOT']) . '/tmp'));
ini_set('session.gc_probability', 1);

答案 1 :(得分:0)

在您的php.ini中添加此

session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440

还要在您的codeigniter配置文件中,检查是否已启用regenerate_destroy和有效期。

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = ‘mysession';
$config['sess_expiration'] = (60 * 60); 
$config['sess_save_path'] = FCPATH . "sessions";
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = TRUE;

基本上,默认情况下gc_probability设置为0,并且这些文件无法删除。因此,将其更改为1会自动启用文件删除。