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 分库分表hash算法
Nov 12 PHP
php中global和$GLOBALS[]的分析之一
Feb 02 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
php实现在限定区域里自动调整字体大小的类实例
Apr 02 PHP
深入理解PHP中的Streams工具
Jul 03 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
Jul 29 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
Thinkphp5+uploadify实现的文件上传功能示例
May 26 PHP
PHP实现字符串的全排列详解
Apr 24 PHP
在Laravel中使用MongoDB的方法示例
Nov 11 PHP
PHP实现简单注册登录系统
Dec 28 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+mysql数据库查询实例
2015/01/21 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
js中的window.open返回object的错误的解决方法
2009/08/15 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
js print打印网页指定区域内容的简单实例
2016/11/01 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
Python三元运算实现方法
2015/01/12 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
详解Python中的strftime()方法的使用
2015/05/22 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
Python数据可视化之画图
2019/01/15 Python
用python做游戏的细节详解
2019/06/25 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
css3 position fixed固定居中问题解决方案
2014/08/19 HTML / CSS
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
Python面试题集
2012/03/08 面试题
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
保护环境倡议书500字
2014/05/19 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书