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 HtmlReplace输入过滤安全函数
Jul 03 PHP
php expects parameter 1 to be resource, array given 错误
Mar 23 PHP
PHP的变量总结 新手推荐
Apr 18 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
Jul 12 PHP
深入理解PHP原理之执行周期分析
Jun 01 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
Nov 09 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 PHP
php修改数组键名的方法示例
Apr 15 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
thinkphp5.1框架模板布局与模板继承用法分析
Jul 19 PHP
Nginx+php配置文件及原理解析
Dec 09 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获取远程图片体积大小的实例
2013/11/12 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
IE bug table元素的innerHTML
2010/01/11 Javascript
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
浅谈javascript中的DOM方法
2015/07/16 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
Vue2.0权限树组件实现代码
2017/08/29 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
Python编程之序列操作实例详解
2017/07/22 Python
python matlibplot绘制3D图形
2018/07/02 Python
python实现移位加密和解密
2019/03/22 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
市场部业务员岗位职责
2014/04/02 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
三方股份合作协议书
2014/10/13 职场文书
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
毕业生个人自荐书
2015/03/05 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
无线电通信名词解释
2022/02/18 无线电
Linux服务器离线安装 nginx的详细步骤
2022/06/16 Servers