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 图像函数大举例(非原创)
Jun 20 PHP
php自动给文章加关键词链接的函数代码
Nov 29 PHP
phpmyadmin中禁止外网使用的方法
Nov 04 PHP
PHP会话处理的10个函数
Aug 11 PHP
浅谈PHP Cookie处理函数
Jun 10 PHP
PHP中FTP相关函数小结
Jul 15 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
PHP session会话操作技巧小结
Sep 27 PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
PHP实现微信提现功能(微信商城)
Nov 21 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的面试题集,附我的答案和分析(一)
2006/11/19 PHP
php smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
JS非空验证及邮箱验证的实例
2017/08/11 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
ES6 Generator函数的应用实例分析
2019/06/26 Javascript
JS实现图片切换特效
2019/12/23 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python线性方程组求解运算示例
2018/01/17 Python
用python实现对比两张图片的不同
2018/02/05 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
简述数据库的设计过程
2015/06/22 面试题
分公司经理岗位职责
2013/11/11 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
同意落户证明
2015/06/19 职场文书
2016高三毕业赠言寄语
2015/12/04 职场文书
2019消防宣传标语!
2019/07/10 职场文书
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏
MySQL存储过程及语法详解
2022/08/05 MySQL