关于PHP中Session文件过多的问题

PHP的默认机制:每一次php请求,会有1/100的概率(默认值)触发“session回收”。如果“session回收”发生,那就会检查/tmp/sess_*的文件,如果最后的修改时间到现在超过了1440秒(gc_maxlifetime的值),就将其删除,意味着这些session过期失效

一、session文件是什么

文件一般为 /tmp/sessions/sess_4b1e384ad74619bd212e236e52a5a174Ifusername|s:9:"test";admin|s:1:"0";

二、session回收何时发生

默认情况下,每一次php请求,就会有1/100的概率发生回收,所以可能简单的理解为“每100次php请求就有一次回收发生”。这个概率是通过以下参数控制的#概率是gc_probability/gc_divisorsession.gc_probability = 1session.gc_divisor = 100假设这种情况gc_maxlifetime=120,如果某个session文件最后修改时间是120秒之前,那么在下一次回收(1/100的概率)发生前,这个session仍然是有效的。

如果你的session使用session.save_path中使用别的地方保存session,session回收机制有可能不会自动处理过期session文件。这时需要定时手动(或者crontab)的删除过期的session

三、设置session存储目录

使用php5-fpm的话, 修改/etc/php5/fpm/php.ini, 修改或添加下面一行:session.save_path = 3;600:/tmp/sessions

四、session清除脚本#!/bin/shfind /tmp/php-session -cmin +24 -name "sess_*" -and -size 0 -delete > /dev/null 2>&1find /tmp/php-session -cmin +1440 -name "sess_*" -delete > /dev/null 2>&1

这里的时间我们可以通过 session.gc_maxlifetime 来获取,放到定时任务里面即可(crontab)

其他方式使用memcache 等 ,(session.save_handler = memcache)

使用cookie,但是cookie得加密

五、使用tmfs存储session

1、将/tmp挂载为 tmpfs文件系统

修改/etc/fstab,在最后一行添加如下内容:/tmp/sessions tmpfs defaults,size=5120m 0 0mount -a

2、创建session存储文件夹

php并不会自动去创建这些文件夹,不过在源文件中提供了一些创建文件夹的脚本。下面这个脚本也好用,脚本内容如下#!/bin/shdir="0 1 2 3 4 5 6 7 8 9 a b c d e f"for levela in $dir;do for levelb in $dir; do for levelc in $dir; do mkdir -p /tmp/sessions/$levela/$levelb/$levelc; done done;donechown -R root:webgrp /tmp/sessions && chmod -R 1777 /tmp/sessions

因为/tmp/sessions是用的内存,服务器重启后,里面的所有文件都会丢失,所以,需要把上面的脚本加入到 /etc/rc.local中,并且要放在启动php之前

3、将session存储到不同的目录中

php本身支持session的多级散列,在php.ini中,将 ;session.save_path = /tmp 改为session.save_path = "3;/tmp/sessions

4、session的回收

使用上面的脚本即可

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

php启动 大量sess文件,关于PHP中Session文件过多的有关问题相关推荐

  1. php启动 大量sess文件,关于PHP中Session文件过多的问题

    PHP的默认机制:每一次php请求,会有1/100的概率(默认值)触发"session回收".如果"session回收"发生,那就会检查/tmp/sess_*的 ...

  2. php获取目录文件 排序输出,php实现对文件夹目录中的文件进行排序的方法

    php实现对文件夹目录中的文件按照时间.名称.大小进行排序的方法 函数介绍: opendir() 函数打开目录句柄. readdir() 函数返回目录中下一个文件的文件名. array_multiso ...

  3. c语言实现将两个文件复制到一个文件里_Python中复制文件的9种方法

    作者:小小程序员 链接:https://zhuanlan.zhihu.com/p/91277888 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. Python 中有 ...

  4. 关于PHP中Session文件过多的问题

    PHP的默认机制:每一次php请求,会有1/100的概率(默认值)触发"session回收".如果"session回收"发生,那就会检查/tmp/sess_*的 ...

  5. java web配置dll文件_JavaWeb项目中dll文件动态加载方法解析(详细步骤)

    相信很多做Java的朋友都有过用Java调用JNI实现调用C或C++方法的经历,那么Java Web中又如何实现DLL/SO文件的动态加载方法呢.今天就给大家带来一篇JAVA Web项目中DLL/SO ...

  6. php session位置,关于PHP中Session文件过多的问题及session文件保存位置

    PHP的默认机制:每一次php请求,会有1/100的概率(默认值)触发"session回收".如果"session回收"发生,那就会检查/tmp/sess_*的 ...

  7. 计算机里面的文件打不开,exe是什么文件?电脑中exe文件打不开的原因及解决方法...

    在电脑中,.exe是比较常见的文件格式,但是很多朋友不知道exe是什么文件,接下来这篇文章就将为大家介绍,并且还会附带exe文件打不开的解决方法,希望对大家有所帮助. 1."EXE File ...

  8. c51语言的标准库函的头文件,C51编程中头文件的使用

    头文件在C51的编程中是不可缺少的部分.本文将对keil C中常用头文件予以说明,并就如何编写头文件进行初步介绍. 一.C51常见本征函数库 一些常见的头文件都是keil C自带的,在安装目录下的C5 ...

  9. php 语言文件操作,php中目录文件操作详谈

    php中目录文件操作详谈 首先介绍的是一个从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,以下是小编整理的php中目录,文件操作详谈,欢迎来 ...

最新文章

  1. JavaScript toFixed() 方法
  2. Xamarin.iOS项目提示error MSB3174:”TargetFrameworkVersion”的值无效
  3. Laravel 5.6 中文文档翻译完成,译者 60 人,耗时 10 天
  4. MySQL 数据库时区设置方法,“The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents ...” 问题解决
  5. 《Groovy语言规范》-语法(三)
  6. 最短路径——迪杰斯特拉算法——图的数据结构
  7. 2017.4.5 假期的宿舍 思考记录
  8. Linux chapter 7
  9. Vivado18.3的安装 安装教程
  10. java中,参数后面跟三个点(...)的含义
  11. b站谈服务器崩溃后其他站点,B站服务器崩溃后,蒙古上单和陈睿一起上了热搜...
  12. 用opencv将左右眼3D图片转换为红蓝3D图片
  13. 计算机相关期刊阅读,计算机领域的所有SCI一区期刊,这是最顶级期刊了.doc
  14. 知识图谱问答 | (3) 关系分类概述
  15. 华为RH2288H V3服务器更换内存条
  16. 方法被重写时的调用问题
  17. 中文文本纠错任务简介
  18. CMD命令批量抽取指定文件夹下所有文件路径
  19. 干货|“区块链+物联网”的发展现状和应用案例
  20. 帆软认证报表工程师(FCRA)考试考题(我的错题记录)

热门文章

  1. Windows变慢原因分析
  2. 苹果开发者账号官方翻译篇-账号简介
  3. [cv]郑哲东 Deep-ReID——Learn pedestrian representations from
  4. 不知明镜里,何处得秋霜
  5. 埃尔米特多项式 (Hermite Polynomials)简介(2)
  6. vivo联手京东,打通线上线下营销生态
  7. 最好的防御就是进攻 任正非
  8. 最满意的10款PC 软件分享
  9. 算法题(2)力扣第n位数字
  10. 数字信号处理之期中斩神篇(一重 搬山)