要在生產環境為一個內部系統升PHP版本,由5.3升成5.4.16
生成以後發現不能login,一路打斷點過去,發現服務器端兩個頁面跳轉的時候,取不到$SESSION
悲催的上網找解決方案,結果發現各種說法,
先去查浏覽器cookie, cookie是可用的, sessionID也能正常拿的到
再去看代碼, 代碼寫得很正常, 開頭session_start, 中間$SESSION[XXX] = XXXX , 都很正常
百思不得其解,快要發瘋的時候
我想起來, PHP是把session保存在哪裡的呢
Tomcat是可以選擇序列化在數據庫裡,或者寫本地文件,或者干脆保存在內存裡
PHP原來默認是保存在txt文件中, 保存的path是PHP.ini中的 session.save_path
阿彌陀佛,原來是升級PHP之後, 系統默認把session.save_path 的所有權交給了root, 而不是我當前運行PHP的用戶
PHP沒權限把session寫入這個path中,當然會丟失了。
FFFFuck 狗日的PHP!!!!