最近碰到一個問題,把代碼遷移到linux系統下,重新搭建php環境,運行代碼,
在登錄頁面時,不能訪問后台,會返回到登錄頁面,對代碼測試,沒有報任何錯誤,
最后檢查到是跳轉時,session丟失的問題,如何會丟失呢?帶着這個問題,查了大量資料,
發現造成這個原因有這幾種:
1.session存儲路徑(目錄)不存在,自然就無法生成session臨時文件
2.session存儲路徑下有沒有權限,如果沒有,也就不可能存儲session數據
3.能正常存session數據,但session存入后被清空
解決方案:
首先,在項目根目錄下創建phpinfo.php文件,在文件中寫入phpinfo(),運行此文件,查看頁面,
就可以找到session的存儲路徑,
其次,進入linux中查找session存儲路徑是否存在,不存在創建存儲目錄,並分配權限,
如果有session存儲路徑,就查看其是否有權限,沒有就分配權限,
最后,是否是第三個原因,可在phpinfo.php頁面中查找date.timezone是否設置不對,
然后在php.ini配置文件中找到date.timezone進行配置
我的項目中遇到的就是第一種情況,因而,我就創建存儲目錄,並分配權限,問題就解決了。
希望本編博客對大家能有所幫助。
最后,提醒下各位,不要在配置文件中找session存儲路徑,上述方法找的session存儲路徑准確,
我花了大量時間才解決問題就是配置文件中的session存儲路徑和上述方法找到的session存儲路徑不同,
所以才一直沒有解決問題。