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加密解密的代码
Jul 16 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
Nov 10 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
Nov 10 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
PHP常用正则表达式集锦
Aug 17 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
避免Smarty与CSS语法冲突的方法
Mar 02 PHP
php使用curl代理实现抓取数据的方法
Feb 03 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 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
JAVA/JSP学习系列之七
2006/10/09 PHP
一些使用频率比较高的php函数
2008/10/03 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
SWFObject基本用法实例分析
2015/07/20 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
Angularjs处理页面闪烁的解决方法
2017/03/09 Javascript
js a标签点击事件
2017/03/30 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
基于python图像处理API的使用示例
2020/04/03 Python
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
大学生学习生活的自我评价
2013/11/01 职场文书
土建资料员岗位职责
2014/01/04 职场文书
小学敬老月活动方案
2014/02/11 职场文书
做人民满意的公务员活动方案
2014/08/25 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
公务员检讨书
2014/11/01 职场文书
营销计划书范文
2015/01/17 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
用python批量解压带密码的压缩包
2021/05/31 Python
用Java实现简单计算器功能
2021/07/21 Java/Android
js作用域及作用域链工作引擎
2022/07/07 Javascript