php session实现多级目录存放实现代码


Posted in PHP onFebruary 03, 2016

当一个目录下有很多文件时,服务器的处理性能会变低,php默认的session仅仅存放在/tmp目录下,未进行分级,当有一定的访问量时,就存在性能问题了。

首先,修改 php.ini的 session.save_path 选项修改如下:
session.save_path = “2;/tmp/session” (去掉前面分号)
表示把session存放在 “/tmp/session” 目录下,并且分成 2 级子目录

一般情况下2级目录就够了,就能够处理相当大的访问量了

———————?

其他注释

session.hash_function = 0
; 生成SID的散列算法。SHA-1的安全性更高一些
; 0: MD5 (128 bits)
; 1: SHA-1 (160 bits)
; 建议使用SHA-1。

session.hash_bits_per_character = 4
; 指定在SID字符串中的每个字符内保存多少bit,
; 这些二进制数是hash函数的运算结果。
; 4: 0-9, a-f
; 5: 0-9, a-v
; 6: 0-9, a-z, A-Z, “-“, “,”
; 建议值为 5

————————?

php源码文件中ext/session/mod_files.sh文件,可以辅助生成目录,就不用自己在写脚本了

#! /bin/sh
 
if test "$2" = ""; then
echo "usage: $0 basedir depth"
exit 1
fi
 
if test "$2" = "0"; then
exit 0
fi
 
hash_chars="0 1 2 3 4 5 6 7 8 9 a b c d e f"
if test "$3" -a "$3" -ge "5"; then
hash_chars="$hash_chars g h i j k l m n o p q r s t u v"
if test "$3" -eq "6"; then
hash_chars="$hash_chars w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - ,"
fi
fi
 
for i in $hash_chars; do
newpath="$1/$i"
mkdir $newpath || exit 1
sh $0 $newpath `expr $2 - 1` $3
done

设置为可执行之后,运行以下命令来创建哈希目录:
#cd /root/soft_install/php-5.3.5/ext/session
#./mod_files.sh /tmp/session 2 5

三个参数依次表示,存放路径, 几级目录,每个目录生成多少个目录(参考session.hash_bits_per_character)

另外需要注意修改 /tmp/session的权限,保证运行php的帐号有权限读写

PHP 相关文章推荐
PHP4实际应用经验篇(4)
Oct 09 PHP
PHP生成月历代码
Jun 14 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 PHP
PHP垃圾回收机制引用计数器概念分析
Jun 24 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
Nov 22 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 PHP
PHP实现的网站目录扫描索引工具
Sep 08 PHP
PHP的PDO错误与错误处理
Jan 27 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
Dec 12 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
Feb 03 #PHP
全新Mac配置PHP开发环境教程
Feb 03 #PHP
PHP的几个常用加密函数
Feb 03 #PHP
是 WordPress 让 PHP 更流行了 而不是框架
Feb 03 #PHP
composer.lock文件的作用
Feb 03 #PHP
网页的分页下标生成代码(PHP后端方法)
Feb 03 #PHP
PHP Cookei记录用户历史浏览信息的代码
Feb 03 #PHP
You might like
PHP中date()日期函数有关参数整理
2011/07/19 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
JavaScript中this详解
2015/09/01 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
总结JavaScript三种数据存储方式之间的区别
2016/05/03 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
javascript+css3开发打气球小游戏完整代码
2017/11/28 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
python负载均衡的简单实现方法
2018/02/04 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
python实现LRU热点缓存及原理
2019/10/29 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
python实现扫雷游戏
2020/03/03 Python
Python tornado上传文件的功能
2020/03/26 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
Keras实现DenseNet结构操作
2020/07/06 Python
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
编辑硕士自荐信范文
2013/11/27 职场文书
大一期末自我鉴定
2013/12/13 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
丧事主持词
2015/07/02 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
Go并发4种方法简明讲解
2022/04/06 Golang