用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4029|回复: 6
收起左侧

[版本 3.x] 自定义了一个session目录中session文件自动删除问题求助

[复制链接]
发表于 2016-8-2 16:08:12 | 显示全部楼层 |阅读模式
自定义了一个session目录,里面每隔300就生成一个session文件,
我的session设置:


$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = APPPATH . '\sess';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;




是因为sess_regenerate_destroy设置成FALSE,所以没删除吗?之前没设置sess_save_path时,session是会自动删除的,设置之后就不会自动删除了。
求助过期的session文件自动删除的方法
发表于 2016-8-3 09:20:51 | 显示全部楼层
本帖最后由 yuzhigang5460 于 2016-8-3 09:22 编辑
PHP复制代码
//会话重新生成时是否将以前的session文件内容删除掉。
//如果设为false并且驱动器设为files时,不断刷新含有session的页面,
//你会发现服务器上保存sessions的文件不断增多,不过不用担心,php的GC机制会帮你回收这些资源
$config['sess_regenerate_destroy'] = FALSE;
复制代码


http://www.ifixedbug.com/posts/how-to-use-codeigniter3-session-3

评分

参与人数 1威望 +2 收起 理由
Hex + 2 很给力!

查看全部评分

 楼主| 发表于 2016-8-5 16:48:41 | 显示全部楼层
yuzhigang5460 发表于 2016-8-3 09:20
http://www.ifixedbug.com/posts/how-to-use-codeigniter3-session-3

php的GC机制回收的是php.ini里面设置的session保存文件夹里的文件,但是我自定义的session路径不是设置里面的,因为一个服务器有多个项目,要求的session过期时间不同,所以设置了不同的session文件夹,只有php默认的文件夹里的session文件被回收,其他的文件夹的不会
 楼主| 发表于 2016-8-5 16:58:43 | 显示全部楼层
暂时解决方案:
$config['sess_regenerate_destroy'] = TRUE;

不再生成多余的session,但是session文件仍旧不能删除
短期内没有问题,长期还是会有文件冗余
而且sess_destroy不起作用,生成的session只有读写权限,不知道是不是因为文件权限问题

发表于 2016-8-5 17:01:43 | 显示全部楼层
PHP 的 GC 机制应该都有效啊,你那里没效果么?
 楼主| 发表于 2016-8-5 17:19:53 | 显示全部楼层
本帖最后由 zhhy_work 于 2016-8-5 17:58 编辑
Hex 发表于 2016-8-5 17:01
PHP 的 GC 机制应该都有效啊,你那里没效果么?

是只有php.ini设置的session.save_path文件夹里的会自动回收,但是其他自定义的就无效。

php自带的sess_destroy和CI的session的销毁都不起作用
是因为生成的session只有读写权限,所以不能删除?
发表于 2016-8-8 11:04:13 | 显示全部楼层
zhhy_work 发表于 2016-8-5 17:19
是只有php.ini设置的session.save_path文件夹里的会自动回收,但是其他自定义的就无效。

php自带的sess_d ...

have a try!

本版积分规则