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 获取mysql数据库信息代码
Mar 12 PHP
调整优化您的LAMP应用程序的5种简单方法
Jun 26 PHP
PHP三元运算符的结合性介绍
Jan 10 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
php中OR与|| AND与&&的区别总结
Oct 26 PHP
分享常见的几种页面静态化的方法
Jan 08 PHP
PHP图形操作之Jpgraph学习笔记
Dec 25 PHP
PHP获取数组中单列值的方法
Jun 10 PHP
php使用str_replace替换多维数组的实现方法分析
Jun 15 PHP
PHPMAILER实现PHP发邮件功能
Apr 18 PHP
yii2 url重写并隐藏index.php方法
Dec 10 PHP
Laravel5.1框架路由分组用法实例分析
Jan 04 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
极典R601SW收音机
2021/03/02 无线电
php addslashes和mysql_real_escape_string
2010/01/24 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
10款非常有用的 Ajax 插件分享
2012/03/14 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
Bootstrap基本插件学习笔记之按钮(21)
2016/12/08 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
vue.js做一个简单的编辑菜谱功能
2018/05/08 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
Python自动化测试ConfigParser模块读写配置文件
2016/08/15 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
使用python3实现操作串口详解
2019/01/01 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
档案接收函范文
2014/01/10 职场文书
《风筝》教学反思
2014/04/10 职场文书
员工安全承诺书
2014/05/22 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
离婚上诉状范文
2015/05/23 职场文书