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 相关文章推荐
PHP提取中文首字母
Apr 09 PHP
让PHP开发者事半功倍的十大技巧小结
Apr 20 PHP
php数组函数序列之array_flip() 将数组键名与值对调
Nov 07 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
php中url函数介绍及使用示例
Feb 13 PHP
php中动态调用函数的方法
Mar 16 PHP
php读取der格式证书乱码解决方法
Jun 22 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
PHP二维数组矩形转置实例
Jul 20 PHP
PHP微信企业号开发之回调模式开启与用法示例
Nov 25 PHP
php无限级评论嵌套实现代码
Apr 18 PHP
Yii2处理密码加密及验证的方法
May 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中路径问题的解决方案
2006/10/09 PHP
综合图片计数器
2006/10/09 PHP
通过具体程序来理解PHP里面的抽象类
2010/01/28 PHP
php程序的国际化实现方法(利用gettext)
2011/08/14 PHP
php利用新浪接口查询ip获取地理位置示例
2014/01/20 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
2016/01/11 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
Bootstrap3 图片(响应式图片&图片形状)
2017/01/04 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
2019/08/12 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
Python 中迭代器与生成器实例详解
2017/03/29 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
Python多项式回归的实现方法
2019/03/11 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
super关键字的用法
2012/04/10 面试题
求职自荐信怎么写
2014/03/06 职场文书
园艺师求职信
2014/03/10 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
2016党员党课心得体会
2016/01/07 职场文书
如何写好闭幕词
2019/04/02 职场文书