通過搜查找到了問題所在并進行了解決,在此詳細記錄以供參考。
一、 temp文件夾大量文件的刪除
以sess開頭的存在于temp系統(tǒng)臨時文件夾的文件,是php的session保存文件,由于php建立了session卻在過期后沒有成功刪除,于是導致大量文件的積累。
清理方法很簡單,新建批處理文件del_temp.bat,其中寫入如下命令:
代碼如下:
del %TEMP% /s /q *.*
保存后雙擊運行,即開始進行刪除處理(也可直接在cmd命令行中輸入執(zhí)行)
你也可以將其加入開機啟動項,以使得每次重啟系統(tǒng)后即執(zhí)行一次刪除處理。
提示:
1. 如果這里執(zhí)行一直顯示無法進行(志文工作室最先遇到的情況即如此),則可能是temp文件夾及其中部分文件正處于使用狀態(tài),那么你可以在同目錄下新建一個文件夾tmp,然后修改系統(tǒng)環(huán)境變量temp和tmp的位置為此,接著重啟系統(tǒng)使得新的臨時目錄生效,此時即可對temp文件任意刪改了。
2. 志文工作室的服務器temp文件夾內(nèi)存在數(shù)十萬這樣的文件,清理了若干小時才完成。故在進行處理前應停止iis:
net stop iisadmin 關(guān)閉iis服務
net start iisadmin 開啟iis服務
3. 當然,你不希望在處理的過程中讓網(wǎng)站關(guān)閉如此之久,所以你應依次進行的操作是:
1>. 關(guān)閉iis
2>. 更改php保存session的默認路徑(參考后面內(nèi)容)
3>. 開啟iis,檢查服務器所有站點是否正常
4>. 執(zhí)行del_temp.bat進行清理
二、修改php的Session保存路徑session.save_path
1. 打開php.ini文件,查找到
“;session.save_path = "/tmp"”
將其修改為指定的位置用于存儲session,例如,志文工作室將其改為:
session.save_path = "c:/tmp/phpsession"
當然你也可以使用分級目錄的方式,比如改為這樣:
session.save_path="5;c:/tmp/phpsession"
關(guān)于session的分級目錄存放請參考后續(xù)內(nèi)容詳解
2. 新建文件夾路徑:c:/tmp/phpsession
3. 添加該路徑(即phpsession文件夾)的internet來賓賬戶修改和寫入權(quán)限,注意最好不要給予執(zhí)行權(quán)限。
4. 啟動iis,觀察該目錄是否會有新的session文件產(chǎn)生。
三、php的session多級目錄存放解決大量臨時文件效率問題
session多級存放可以緩解一個目錄下session文件過多帶來的讀寫效率問題。
php.net上針對sesstion配置相關(guān)的說明:http://cn.php.net/manual/zh/ref.session.php
session.save_path string
session.save_path 定義了傳遞給存儲處理器的參數(shù)。如果選擇了默認的 files 文件處理器,則此值是創(chuàng)建文件的路徑。默認為 /tmp。參見 session_save_path()。
此指令還有一個可選的 N 參數(shù)來決定會話文件分布的目錄深度。例如,設(shè)定為 '5;/tmp' 將使創(chuàng)建的會話文件和路徑類似于
|
新聞熱點
疑難解答
圖片精選