php session 多级,php session实现多级目录存放

当一个目录下有很多文件时,服务器的处理性能会变低,php默认的session仅仅存放在/tmp目录下,未进行分级,当有一定的访问量时,就存在性能问题了。

首先,修改 php.ini的 session.save_path 选项修改如下:

session.save_path = "2;/tmp/phpsession" (去掉前面分号)

表示把session存放在 "/tmp/phpsession" 目录下,并且分成 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/php_sess 2 5

三个参数依次表示,存放路径, 几级目录,每个目录生成多少个目录(参考session.hash_bits_per_character)

另外需要注意修改 /tmp/php_sess的权限,保证运行php的帐号有权限读写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值