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 23 PHP
php实现jQuery扩展函数
Oct 30 PHP
支持数组的ADDSLASHES的php函数
Feb 16 PHP
第七章 php自定义函数实现代码
Dec 30 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
Jul 01 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
php中array_slice和array_splice函数解析
Oct 18 PHP
thinkPHP5.0框架命名空间详解
Mar 18 PHP
Yii2设置默认控制器的两种方法
May 19 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 PHP
php和asp语法上的区别总结
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 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
js小数运算出现多位小数如何解决
2015/10/08 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
详解React中setState回调函数
2018/06/14 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
python正则表达式中的括号匹配问题
2014/12/14 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
Python实现分段线性插值
2018/12/17 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
python学生信息管理系统实现代码
2019/12/17 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
尼克松手表官网:Nixon手表
2019/03/17 全球购物
汽车驾驶求职信
2013/10/25 职场文书
保密工作实施方案
2014/02/24 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
2019优秀干部竞聘演讲稿范文!
2019/07/02 职场文书
人生一定要学会的三样东西:放下、忘记、珍惜
2019/08/21 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书