PHP的session問題

一、session時間週期設置

方法1

php文件中添加如下代碼:

/* 控制session時間*/

$lifetime=60*90;

session_set_cookie_params($lifetime);

session_regenerate_id(true);

方法2

修改php.ini文件:

要實現Session的永久生命期,首先需要了解一下php.ini關於Session的相關設置

(打開php.ini文件,在“[Session]”部分):

 
1、session.use_cookies:默認的值是“1”,代表SessionID使用Cookie來傳遞,反之就是使用Query_Stringurl中?後的值)來傳遞;


2、session.name:這個就是SessionID儲存的變量名稱,可能是Cookie,也可能是

Query_String來傳遞,默認值是”PHPSESSID”;

 

3、session.cookie_lifetime:這個代表SessionID在客戶端Cookie儲存的時間,默認是0,代表瀏覽器一關閉SessionID就作廢……就是因爲這個所以Session不能永久使用! 


4、session.gc_maxlifetime:這個是Session數據在服務器端儲存的時間,如果超過這個時間,那麼Session數據就自動刪除! 

 

因此,此時應修改session.gc_maxlifetime的值,比如90分鐘,將其session.gc_maxlifetime=60*90

 

二、phpsession多級目錄存放解決大量臨時文件效率問題
1、問題
當一個目錄下有很多文件時,服務器的處理性能會變低,php默認的session僅僅存放在/var/lib/php5目錄下,未進行分級,當有一定的訪問量時,就存在性能問題了。

2、解決方法

session多級存放可以緩解一個目錄下session文件過多帶來的讀寫效率問題。

 

session.save_path  string 設置創建session臨時文件的路徑。默認爲 /tmp,咱們的服務器是存放在/var/lib/php5。參見 session_save_path()。
此指令還有一個可選的 N 參數來決定會話文件分佈的目錄深度。例如,設定爲 '5;/tmp' 將使創建的會話文件和路徑類似於

/tmp/4/b/1/e/3 /sess_4b1e384ad74619bd212e236e52a5a174If
要使用 N 參數,必須在使用前先創建好這些目錄。在 ext/session 目錄下有個小的 shell 腳本名叫 mod_files.sh 可以用來做這件事。此外注意如果使用了 N 參數並且 N 大於 0,那麼將不會執行自動垃圾回收,更多信息見 php.ini。
另外如果用了 N 參數,要確保將 session.save_path 的值用雙引號 “quotes” 括起來,因爲分隔符分號( ;)在 php.ini 中也是註釋符號。

參考以上說明,在定義session.save_path中可以定義多級存放的路徑,於是我們可以修改php.ini中的session.save_path爲:

session.save_path = “2;/var/lib/php5”
一般情況下2級目錄就夠了,就能夠處理相當大的訪問量了
如此將session文件分成兩級存放,即類似於

/var/lib/php5/4/b/sess_4b1e384ad74619bd212e236e52a5a174If

取session的前兩位字符作爲二級目錄索引,但是php並不生成目錄,需要自己手工生成,這裏提供一個php腳本來生成初始的目錄。

$string = '0123456789abcdefghijklmnopqrstuvwxyz';

$length = strlen($string);

function makeDir($param){

 if(!file_exists($param)) {

  echo "mkdir ".$param."\n";

 // exec("mkdir ".$param);

  mkdir($param,0777);

 }

}  

 for($i = 0; $i < $length; $i++) {

   makeDir('/var/lib/php5/'.$string[$i]);

 for($j = 0; $j < $length; $j++) {

  makeDir('/var/lib/php5/'.$string[$i].'/'.$string[$j]);

 }

}

 session目錄分級處理之後,IO處理值增加,http進程降低,web處理效率明顯好轉

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