您的位置:首页 > 编程语言 > PHP开发

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

2014-07-07 14:33 686 查看
因为服务器访问量大,产生了大量的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中,定期执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: