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新手上路(二)
Oct 09 PHP
php 用sock技术发送邮件的函数
Jul 21 PHP
抓取YAHOO股票报价的类
May 15 PHP
PHP Stream_*系列函数
Aug 01 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
php jquery 多文件上传简单实例
Dec 23 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
Jun 30 PHP
Linux系统递归生成目录中文件的md5的方法
Jun 29 PHP
php检查页面是否被百度收录
Oct 28 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
PHP+JS实现的实时搜索提示功能
Mar 13 PHP
laravel中短信发送验证码的实现方法
Apr 25 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转换颜色为其反色的方法
2015/04/27 PHP
php显示时间常用方法小结
2015/06/05 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
提高JavaScript执行效率的23个实用技巧
2017/03/01 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
Python 中 Meta Classes详解
2016/02/13 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
python实现多进程代码示例
2018/10/31 Python
python write无法写入文件的解决方法
2019/01/23 Python
Python常用数据分析模块原理解析
2020/07/20 Python
交通安全演讲稿
2014/01/07 职场文书
清洁工表扬信
2014/01/08 职场文书
人资专员岗位职责
2014/04/04 职场文书
热门专业求职信
2014/05/24 职场文书
力学专业求职信
2014/07/23 职场文书
学校四风对照检查材料
2014/08/28 职场文书
无犯罪记录证明
2014/09/19 职场文书
工作检讨书范文
2015/01/23 职场文书
物业工程部经理岗位职责
2015/04/09 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android