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 相关文章推荐
2.PHP入门
Oct 09 PHP
在PHP中使用curl_init函数的说明
Nov 02 PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
浅谈json_encode用法
Mar 05 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
如何通过Linux命令行使用和运行PHP脚本
Jul 29 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
PHP实现微信对账单处理
Oct 01 PHP
php面向对象程序设计中self与static的区别分析
May 21 PHP
PHP面向对象程序设计之对象的遍历操作示例
Jun 12 PHP
解决laravel5.4下的group by报错的问题
Oct 16 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&java(一)
2006/10/09 PHP
php 魔术方法使用说明
2009/10/20 PHP
PHP 数组基础知识小结
2010/08/20 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
php密码生成类实例
2014/09/24 PHP
PHP类的封装与继承详解
2015/09/29 PHP
javascript 对象的定义方法
2007/01/10 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
2015/10/26 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
2016/01/13 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
js重写方法的简单实现
2016/07/10 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Python定时任务sched模块用法示例
2018/07/16 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
感恩老师演讲稿400字
2014/08/28 职场文书
师德师风自查总结
2014/10/14 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
MySQL之select、distinct、limit的使用
2021/11/11 MySQL