【更新】linux服务器tmp目录爆满并产生大量sess_*文件

发布时间:2021-04-13 21:39:29 浏览量:3687 标签: session PHP

继上次文章内容《linux服务器tmp目录爆满并产生大量sess_*文件 》中说到了linux的tmp目录下产生了大量的sess_开头的文件,数量很多。今天继续来说一下。


一、sess_文件


这些属于用户登录凭证文件。默认情况下会存放在临时缓存目录中,我们可以使用session.save_path来设置存放目录或使用session_save_path()让每个站点的session保存到一个专用目录;


二、PHP回收机制


用当前时间减去session最后修改的时间,同session.gc_maxlifetime参数进行比较,如果生存时间超过gc_maxlifetime(默认24分钟),就将该session删除。


当一个有效的请求发生时,PHP 会根据全局变量 session.gc_probabilitysession.gc_divisor的值,来决定是否启用一个GC, 在默认情况下,

session.gc_probability = 1session.gc_divisor = 100


也就是说有1%的可能性启动GC(也就是说100个请求中只有一个gc会伴随100个中的某个请求而启动).
但是,如果你Web服务器有多个站点,多个站点时,GC处理session可能会出现意想不到的结果,原因就是:GC在工作时,并不会区分不同站点的session.


三、session的保存格式

默认为file,定义session在服务端的保存方式,file意为把sesion保存到一个临时文件里,如果我们想自定义别的方式保存(比如用数据库),则需要把该项设置为user;但是不建议将其保存在数据库中,我们可以将其保存在redis中。


设置方式

session.save_handler = redis
session.save_path = “tcp://127.0.0.1:6379?auth=redisauthkey″


如果没有密码,可直接到端口号即可。


评论
登录后才可以进行评论哦! QQ登录
验证码
评论内容