一、修改 php.ini 配置
vi /usr/local/php/etc/php.ini
1、路徑和目錄深度: session.save_path = "3;/tmp/session" 根目錄與深度 3; 代表目錄 /tmp/sess/1/2/3/ 下儲存檔案的深度, 如 /tmp/sess/1/2/3/sess_id, /tmp/sess/a/b/c/sess_id 該目錄需要手動建立,必須保留兩邊的雙引号。
2、設定 session 最大有效時間, 機關 秒, 最大值 65535 session.gc_maxlifetime = 10800
3、設定 sessionid 加密級别 session.hash_bits_per_character = 6
二、手動生成目錄
cd /usr/local/php/include/php/ext/session/ vi mod_files.sh 加入下面的 shell 代碼:
==============================================================
昨天發表的文章有個大bug導緻目錄生成不完整,這是修改後的版本了,今天有使用者登陸不了賬号才發現,3級目錄貌似将需要生成 64*64*64 = 262144 個目錄總共,需要等好一段時間的
添加檔案的執行權限: chmod +x ./mod_files.sh 建立 3 級深度目錄, 每級 64 個 以 0-9a-za-z,- 字元命名的目錄 mkdir /tmp/session ./mod_files.sh /tmp/session 3 64 請耐心等待一段時間,根據指定的目錄深度,時間長度不一樣,例如 3級目錄将需要生成 262144 個檔案夾,估計需要10分鐘左右吧 修改目錄權限 chmod -r 777 /tmp/session
三、測試代碼并添加定時任務
檢視搜尋到的最後修改在 180 分鐘前檔案總個數 find /tmp/session/ -depth -type f -mmin +180 | wc -l
添加定時任務 每天執行一次清理 0 0 * * * find /tmp/session/ -depth -type f -mmin +180 -exec rm -f {} \; &>/dev/null
=================================================================================
ps:2014/02/27 01:18
我以前這麼處理過一段時間,但遇到過無數問題,非常郁悶,甚至差點導緻檔案系統崩潰,阿裡雲伺服器的硬碟感覺确實不怎麼滴,伺服器為此經常超載,出現很多幽靈 session 檔案,root 權限都删除不掉,後來放棄使用硬碟存儲了,采用 memcache 記憶體緩存了,這些煩人的問題都沒了