PHP Session文件的散列存储及过期删除

因为服务器访问量大,产生了大量的session文件,若这些文件默认都保存在/tmp目录下,会造成服务器性能问题,所以需要把session文件散列存储。

session_save_path(“2;0666;/var/www/html/session”);

php并不会自动创建这些目录,所以我写了个shell脚本来创建这些目录:

#! /bin/sh

subdir="session"
depth="2"
hash_chars="0 1 2 3 4 5 6 7 8 9 a b c d e f"

makedir()
{
if test "$2" = "0"; then
return
fi
for i in $hash_chars; do
newpath="$1/$i"
mkdir $newpath || exit 1
echo "mkdir $newpath"
makedir $newpath `expr $2 - 1`
done
}

mkdir session
makedir $subdir $depth;

开头的3个变量可以自己根据需要设置

虽然php中有配置自动清理session,但在这种多级目录存储的情况下并不会生效,所以我们要自己写个脚本清理session文件,脚本内容如下:

find /var/www/html/session -mtime +1 -exec rm -rf {} \;

放入cron中,定期执行。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值