Heim > Backend-Entwicklung > PHP-Problem > So richten Sie einen mehrstufigen Verzeichnisspeicher für eine PHP-Sitzung ein

So richten Sie einen mehrstufigen Verzeichnisspeicher für eine PHP-Sitzung ein

藏色散人
Freigeben: 2023-03-04 08:40:01
Original
2056 Leute haben es durchsucht

php session目录设置的方法:首先打开“php.ini”文件;然后找到“session.save_path”选项并修改;接着指定SID字符串中的每个字符内保存多少bit即可。

So richten Sie einen mehrstufigen Verzeichnisspeicher für eine PHP-Sitzung ein

推荐:《PHP视频教程

php session实现多级目录存放

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

推荐:《php session 会话(专题)

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

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

表示把session存放在 “/tmp/session” 目录下,并且分成 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
Nach dem Login kopieren

设置为可执行之后,运行以下命令来创建哈希目录:

#cd /root/soft_install/php-5.3.5/ext/session
#./mod_files.sh /tmp/session 2 5
Nach dem Login kopieren

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

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

php中设置多级目录session的问题

在 php.ini 中找到 session.save_path 将值设置为 session.save_path = '3;/tmp/session'; 即可开启三级目录保存session。但是php不会自动生成目录结构,这时可以借助源码包 ext/session 目录下的 mod_files.sh 来生成目录

$ bash mod_files.sh /tmp/session 3
Nach dem Login kopieren

生成完成后发现仍然不能生成session,纠结了半天,打开mod_files.bat才发现玄机,原来后面还需要带一个参数,对应于 php.ini 中的 session.hash_bits_per_character ,这个值默认是4,development和production版本的默认配置里是5,于是用下面的命令从新生成目录

$ bash mod_files.sh /tmp/session 3 5
Nach dem Login kopieren

终于可以登录了。

Das obige ist der detaillierte Inhalt vonSo richten Sie einen mehrstufigen Verzeichnisspeicher für eine PHP-Sitzung ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage