php性能優化之設置php session多級目錄(原文http://www.bewyn.com/archives/44)

我們知道在php裏面,session默認保存的路徑都是在/tmp/session或/var/lib/php5,這樣就造成了這個目錄裏面的文件數太多,引發了PHP性能問題,所以我們可以設置多級目錄,當然也可以把session放在mysql或者redis,這裏我們只說分級目錄,後續會講mysql及redis方案。

首先,修改 php.ini的 session.save_path 選項修改如下:

session.save_path = “2;/tmp/session“  //這裏設置2級就可以

session.hash_function = 1 //默認是爲0(md5),這裏設置爲1(sha1)

session.hash_bits_per_character = 5 //指定在SID字符串中的每個字符內保存多少bit  4: 0-9, a-f ;5: 0-9, a-v; 6: 0-9, a-z, A-Z, “-“, “,”

找到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 /home

#./mod_files.sh /var/lib/php5 2 5 //參數表示 存放路徑, 幾級目錄,每個目錄生成多少個目錄。

其中一點,需要注意其存儲目錄(/tmp/session或/var/lib/php5),要有相應的執行權限,可以給777。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章