),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究。首先,修改 php.ini的
session.save_path 选项,大致如下:session.save_path = "2;/tmp/php_sess"
"/tmp/php_sess" 目录下,并且分成 2 级子目录,每级子目录又分别有 16 个子目录。接下来,假设php的主目录为
/usr/local/server/php/,则新建一个文件 /usr/local/server/php/include/php/ext/session/mod_files.sh,其内容如下:#! /bin/sh
# NAME
# mod_files.sh - Update of the php-source/ext/session/mod_files.sh
#
# SYNOPSIS
# mod_files.sh basedir depth [numberofsubdirs]
#
# DESCRIPTION
# this script creates the directories tree used by php to store the session files
# (see php.ini - 'session.save_path' option)
#
# Example: if you want php to store the session files in a directory tree
# of 3 levels of depth containing 32 directories in each directory,
# first, put the setting bellow in the php.ini file:
#
# session.save_path = "3;/tmp/session"
#
# Now create the basedir directory: 'mkdir /tmp/session'
#
# Then, call this scrip with the following arguments:
#
# ./mod_files.sh ./mod_files.sh /tmp/session 3 32
if test "$2" = ""; then
echo "usage: $0 basedir depth [numberofsubdirs]"
echo "numberofsubdirs: if unset, defaults to 16. if 32, 32 subdirs, if 64, 64 subdirs."
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 [ ! -z $3 ] ; then
if test "$3" -a "$3" -eq "32"; 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 "64"; 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
fi
for i in $hash_chars; do
newpath="$1/$i"
mkdir $newpath || exit 1
sh $0 $newpath `expr $2 - 1` $3
done
shell>#cd /usr/local/server/php/include/php/ext/session/ shell>#./mod_files.sh /tmp/php_sess 2 16
/etc/exports,加入如下内容:/tmp/php_sess/ svr*(rw,no_root_squash)
在 svr2、svr3 上执行以下命令来挂在NFS:
shell>#mkdir /tmp/php_sess shell>#mount svr1:/tmp/php_sess /tmp/php_sess
find /tmp/php_sess -mmin +30 | xargs rm -fr
最后,在这两个主机上对 php.ini 增加/修改上面提到的内容,然后重启apache即可。顺祝大家新年好运!
















