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生成随机数或者字符串的代码
Sep 05 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 PHP
Laravel框架中实现使用阿里云ACE缓存服务
Feb 10 PHP
php实现的用户查询类实例
Jun 18 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
php ajax实现文件上传进度条
Mar 29 PHP
Centos6.5和Centos7 php环境搭建方法
May 27 PHP
PHP封装的数据库保存session功能类
Jul 11 PHP
php session的应用详细介绍
Mar 22 PHP
Yii2语言国际化的配置教程
Aug 19 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 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
老生常谈PHP面向对象之解释器模式
2017/05/17 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
也说JavaScript中String类的replace函数
2011/09/22 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
FireBug 调试JS入门教程 如何调试JS
2013/12/23 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
bootstrap 设置checkbox部分选中效果
2017/04/20 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
Python内置函数的用法实例教程
2014/09/08 Python
python 基础教程之Map使用方法
2017/01/17 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
英国水族馆和池塘用品购物网站:Warehouse Aquatics
2019/08/29 全球购物
简历里的自我评价范文
2014/02/24 职场文书
本科应届生自荐信
2014/06/29 职场文书
农村党支部承诺书
2015/04/30 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL