這篇文章將為大家詳細講解有關php中session設置多級目錄存放的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
網(wǎng)站設計制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺管理系統(tǒng);成都網(wǎng)站建設、成都網(wǎng)站設計收費合理;免費進行網(wǎng)站備案等企業(yè)網(wǎng)站建設一條龍服務.我們是一家持續(xù)穩(wěn)定運營了十載的創(chuàng)新互聯(lián)建站網(wǎng)站建設公司。php session目錄設置的方法:首先打開“php.ini”文件;然后找到“session.save_path”選項并修改;接著指定SID字符串中的每個字符內保存多少bit即可。
php session實現(xiàn)多級目錄存放
當一個目錄下有很多文件時,服務器的處理性能會變低,php默認的session僅僅存放在/tmp目錄下,未進行分級,當有一定的訪問量時,就存在性能問題了。
首先,修改 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,
; 這些二進制數(shù)是hash函數(shù)的運算結果。
; 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
設置為可執(zhí)行之后,運行以下命令來創(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的權限,保證運行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
生成完成后發(fā)現(xiàn)仍然不能生成session,糾結了半天,打開mod_files.bat才發(fā)現(xiàn)玄機,原來后面還需要帶一個參數(shù),對應于 php.ini 中的 session.hash_bits_per_character ,這個值默認是4,development和production版本的默認配置里是5,于是用下面的命令從新生成目錄
$ bash mod_files.sh /tmp/session 3 5
終于可以登錄了。
關于php中session設置多級目錄存放的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。