php session实现多级目录存放实现代码

 更新时间:2016年02月03日 23:37:22   投稿:mdxy-dxy  
这篇文章主要介绍了php session实现多级目录存放实现代码,需要的朋友可以参考下

当一个目录下有很多文件时,服务器的处理性能会变低,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连接oracle数据库的核心步骤

    php连接oracle数据库的核心步骤

    这篇文章主要介绍了php连接oracle数据库的核心步骤,简要分析了php安装Oracle扩展设置及连接测试代码,非常简单易懂,需要的朋友可以参考下
    2016-05-05
  • PHP7 preg_replace 出错及解决办法

    PHP7 preg_replace 出错及解决办法

    在本篇文章里小编给大家整理的是一篇关于PHP7 preg_replace 出错及解决办法,有需要的朋友们可以跟着学习下。
    2021-12-12
  • php实现将普通数据转化为json数据

    php实现将普通数据转化为json数据

    在日常的开发工作中免不了要写接口,json格式文本的输出是制作接口必须掌握的,所以本文主要为大家详细介绍了php如何将普通数据转化为json数据,需要的可以参考下
    2023-11-11
  • 浅谈PHP7中的一些小技巧

    浅谈PHP7中的一些小技巧

    PHP7显著提高了整体性能。实际上主要的特性有null合并运算符或返回类型声明。如果你不知道它们,那么你应该去查看PHP文档。这里有一些很少人知道的、可能有用的特性。
    2021-05-05
  • php 团购折扣计算公式

    php 团购折扣计算公式

    php 团购折扣计算公式,因为最近需要调用天天团购程序的数据,代码比较不好找,所以直接自己写个代码读取mysql的数据。
    2011-11-11
  • 使用Huagepage和PGO来提升PHP7的执行性能

    使用Huagepage和PGO来提升PHP7的执行性能

    这篇文章主要介绍了使用Huagepage和PGO来提升PHP7的执行性能的相关方案,来自于注明的PHP开发组成员Laruence的相关研究,需要的朋友可以参考下
    2015-11-11
  • PHP中ini_set与ini_get用法实例

    PHP中ini_set与ini_get用法实例

    这篇文章主要介绍了PHP中ini_set与ini_get用法,以实例形式讲述了ini_set与ini_get函数的具体功能与适用情况,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • 用PHP的ob_start();控制您的浏览器cache!

    用PHP的ob_start();控制您的浏览器cache!

    用PHP的ob_start();控制您的浏览器cache!...
    2006-11-11
  • 通过Email发送PHP错误的方法

    通过Email发送PHP错误的方法

    这篇文章主要介绍了通过Email发送PHP错误的方法,实例分析了php错误的读取及通过php发送Email的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • php获得客户端浏览器名称及版本的方法(基于ECShop函数)

    php获得客户端浏览器名称及版本的方法(基于ECShop函数)

    这篇文章主要介绍了php获得客户端浏览器名称及版本的方法,基于ECShop函数get_user_browser实现该功能,非常具有实用价值,需要的朋友可以参考下
    2015-12-12

最新评论