php中session設(shè)置多級目錄存放的方法

這篇文章將為大家詳細(xì)講解有關(guān)php中session設(shè)置多級目錄存放的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,先為霍州等服務(wù)建站,霍州等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為霍州企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

php session目錄設(shè)置的方法:首先打開“php.ini”文件;然后找到“session.save_path”選項并修改;接著指定SID字符串中的每個字符內(nèi)保存多少bit即可。

php中session設(shè)置多級目錄存放的方法

php session實現(xiàn)多級目錄存放

當(dāng)一個目錄下有很多文件時,服務(wù)器的處理性能會變低,php默認(rèn)的session僅僅存放在/tmp目錄下,未進(jìn)行分級,當(dāng)有一定的訪問量時,就存在性能問題了。

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

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

表示把session存放在 “/tmp/session” 目錄下,并且分成 2 級子目錄

一般情況下2級目錄就夠了,就能夠處理相當(dāng)大的訪問量了

———————–

其他注釋

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字符串中的每個字符內(nèi)保存多少bit,

; 這些二進(jìn)制數(shù)是hash函數(shù)的運(yùn)算結(jié)果。

; 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

設(shè)置為可執(zhí)行之后,運(yùn)行以下命令來創(chuàng)建哈希目錄:

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

三個參數(shù)依次表示,存放路徑, 幾級目錄,每個目錄生成多少個目錄(參考session.hash_bits_per_character)

另外需要注意修改 /tmp/session的權(quán)限,保證運(yùn)行php的帳號有權(quán)限讀寫

php中設(shè)置多級目錄session的問題

在 php.ini 中找到 session.save_path 將值設(shè)置為 session.save_path = '3;/tmp/session'; 即可開啟三級目錄保存session。但是php不會自動生成目錄結(jié)構(gòu),這時可以借助源碼包 ext/session 目錄下的 mod_files.sh 來生成目錄

$ bash mod_files.sh /tmp/session 3

生成完成后發(fā)現(xiàn)仍然不能生成session,糾結(jié)了半天,打開mod_files.bat才發(fā)現(xiàn)玄機(jī),原來后面還需要帶一個參數(shù),對應(yīng)于 php.ini 中的 session.hash_bits_per_character ,這個值默認(rèn)是4,development和production版本的默認(rèn)配置里是5,于是用下面的命令從新生成目錄

$ bash mod_files.sh /tmp/session 3 5

終于可以登錄了。

關(guān)于php中session設(shè)置多級目錄存放的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享題目:php中session設(shè)置多級目錄存放的方法
網(wǎng)頁URL:http://bm7419.com/article10/isgpgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、App設(shè)計、品牌網(wǎng)站建設(shè)、虛擬主機(jī)、移動網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)