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 09 PHP
解析curl提交GET,POST,Cookie的简单方法
Jun 29 PHP
PHP开发框架Laravel数据库操作方法总结
Sep 03 PHP
ThinkPHP3.2.3数据库设置新特性
Mar 05 PHP
使用图灵api创建微信聊天机器人
Jul 23 PHP
在Mac上编译安装PHP7的开发环境
Jul 28 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
Sep 14 PHP
修改Laravel5.3中的路由文件与路径
Aug 10 PHP
PHP7多线程搭建教程
Apr 21 PHP
PDO::_construct讲解
Jan 27 PHP
php中对象引用和复制实例分析
Aug 14 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 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
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
PHP类继承 extends使用介绍
2014/01/14 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
javascript读写XML实现广告轮换(兼容IE、FF)
2013/08/09 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
webpack优化的深入理解
2018/12/10 Javascript
微信小程序实现张图片合成为一张并下载
2019/07/16 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
介绍Python中内置的itertools模块
2015/04/29 Python
在Django中限制已登录用户的访问的方法
2015/07/23 Python
Python利用字典破解WIFI密码的方法
2019/02/27 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
python实现对变位词的判断方法
2020/04/05 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
我的中国梦演讲稿高中篇
2014/08/19 职场文书
2014市国税局对照检查材料思想汇报
2014/09/23 职场文书
法学专业毕业实习自我鉴定2014
2014/09/27 职场文书
法定代表人身份证明书
2015/06/18 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL