[cPanel] Session 檔案吃掉大量空間
2023 Jan 26 未分類
最近常有客戶反應
他覺得他沒有放很多檔案
當然客戶講這種話基本上我們都是參考...
但我還是當一回事的幫客戶看了一下
因為畢竟主機空間沒了
網站就不會動了
連進去 cpanel 看
發現大部分的空間都被 session 吃掉了
cpanel 會把 session 放在一個目錄裡面
/home/xxxxxxxx/.cagefs/var/cpanel/php/sessions
xxxxxxxx 是 user 的 id
這個目錄裡面會有各種版本的 php session 目錄
通常網站只會選其中一個 php 版本運作
所以這個目錄裡面會累積相當多的 session 檔案
如果你想進去下指令刪除檔案
rm -rf PHPSESSID*
是無法刪除的
因為檔案很多
shell 會回覆你太多檔案 無法刪除
於是懶惰之餘
退到 sessions 目錄
直接
rm -rf ea-php71
然後就悲劇了
因為 php 不會自己建立被刪除的目錄
所以 php 有關 session 的動作會全數失敗
(像是加入購物車啊 登入會員啊)
然後客戶就打電話來了
我以為把目錄建回來就好了
結果還是烙賽
php 仍舊噴無法寫入 session 目錄的錯誤
情急之下我只能先改 php 版本了
.cagefs 這個目錄應該只是影子目錄
他應該是連到某個系統的資料夾
所以我雖然把它補回來
但系統仍舊會去開另一個 php 系統指定的 session 資料夾
Severity: Warning --> fopen(/var/cpanel/php/sessions/ea-php71/PHPSESSID94291d3039ce351e8637315a04c52ff92f54e04b): failed to open stream: No such file or directory /home2/xxxxxxxx/public_html/system/libraries/Session/drivers/Session_files_driver.php 172
在找到回覆的方法前
如果你要清除 session 的檔案
可能要自己寫 script 逐個 user/逐個 php 版本去清了
我有 google 到 cpanel 有個 清session 的 script
/usr/local/cpanel/scripts/clean_user_php_sessions
但用法搞不太清楚
一直都清不掉 cagefs 的 session
等有找到解法再來補完