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中设置多级目录session的问题

在 php.ini 中找到 session.save_path 将值设置为 session.save_path = '3;/tmp/session'; 即可开启三级目录保存session。但是php不会自动生成目录结构,这时可以借助源码包 ext/session 目录下的 mod_files.sh 来生成目录

$ bash mod_files.sh /tmp/session 3

生成完成后发现仍然不能生成session,纠结了半天,打开mod_files.bat才发现玄机,原来后面还需要带一个参数,对应于 php.ini 中的 session.hash_bits_per_character ,这个值默认是4,development和production版本的默认配置里是5,于是用下面的命令从新生成目录

$ bash mod_files.sh /tmp/session 3 5

终于可以登录了。

时间: 2024-09-29 15:51:38

php session实现多级目录存放的相关文章

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

当一个目录下有很多文件时,服务器的处理性能会变低,php默认的session仅仅存放在/tmp目录下,未进行分级,当有一定的访问量时,就存在性能问题了. 首先,修改 php.ini的 session.save_path 选项修改如下: session.save_path = "2;/tmp/session" (去掉前面分号) 表示把session存放在 "/tmp/session" 目录下,并且分成 2 级子目录 一般情况下2级目录就够了,就能够处理相当大的访问量了

一个可以自动创建多级目录的函数

创建|函数 <%'创建多级目录,可以创建不存在的根目录'参数:要创建的目录名称,可以是多级'返回逻辑值,True成功,False失败'创建目录的根目录从当前目录开始'---------------------------------------------------FunctionCreateMultiFolder(ByValCFolder)DimobjFSO,PhCreateFolder,CreateFolderArray,CreateFolderDimi,ii,CreateFolderSu

在 WinForm 中完整支持在多级目录中保存的 ASP.NET

asp.net 大概半年前曾写过一个在 WinForm 程序中嵌入 ASP.NET 的简单例子,<在WinForm程序中嵌入ASP.NET>.因为是试验性质的工作,所以当时偷懒直接使用系统自带的 SimpleWorkerRequest 完成 ASP.NET 页面请求的处理工作.使用自带工具类在实现上虽然简单,但受到系统的诸多功能限制,如后面有朋友提到无法直接处理多级子目录的问题等等.(如虚拟目录为 "/" 时无法处理 "/help/about.aspx"

asp生成目录与无限生成多级目录创建

asp教程生成目录与无限生成多级目录创建 这里提供二款asp目录生成函数,第一款是只能创建一级目录,后一款函数可以支持多目录同时生成.   sub efolder(foldername) dim fso set fso=server.createobject("scripting.filesystemobject") if fso.folderexists(server.mappath(foldername)) then set fso=nothing exit sub else fs

php创建多级目录的方法

 这篇文章主要介绍了php创建多级目录的方法,涉及php操作目录的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了php创建多级目录的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <?php /* 写出一个能创建多级目录的PHP函数 */ function createdirlist($path,$mode){ if (is_dir($path)){ //判

python实现一次创建多级目录的方法

 本文实例讲述了python实现一次创建多级目录的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 import os os.makedirs( "/home/jb51/data" ) 这样就可以创建一个三级目录. 希望本文所述对大家的Python程序设计有所帮助.

js实现完全自定义可带多级目录的网页鼠标右键菜单方法

 这篇文章主要介绍了js实现完全自定义可带多级目录的网页鼠标右键菜单方法,实例分析了javascript实现自定义网页鼠标右键弹出菜单的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了js实现完全自定义可带多级目录的网页鼠标右键菜单方法.分享给大家供大家参考.具体分析如下: 这是很不错的一个网页鼠标特性,这个代码可以控制网页中鼠标的右键菜单,完全按照你的意思打造,可以带多级的目录显示. 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD X

asp中创建多级目录的两段代码_应用技巧

复制代码 代码如下:         '==============================         '创建多级目录,可以创建不存在的根目录         '参数:要创建的目录名称,可以是多级         '创建目录的根目录从当前目录开始         '''调用举例         ''Call CreateMultiFolder("/upload/jumbot/myphoto/")         '=============================

Linux系统在多级目录中查找某个文件的方法

Linux系统在多级目录中查找某个文件的方法? 有些时候我们需要查找Linux系统中的某个文件,但该文件可能在Linux系统多级目录中,哪么我们应该如何去查找呢,下面提供三种方法供大家参考: 1 find /dir -http://www.aliyun.com/zixun/aggregation/11696.html">name filename.ext2 du -a | grep filename.ext3 locate filename.ext