Windows下Apache + PHP SESSION丟失的解決過程全紀錄
今天的工作是遷移一個PHP站點至新服務器。
創(chuàng)建一臺Windows Server 2008虛擬機,并在其上停掉net stop http服務(避免爭搶80端口),安裝配置 Apache + PHP,遷移站點至新服務器,站點正常打開,Apache + PHP運行正常,連接MySql Server正常,一切都美好,本想著半小時完成的工作,緊接著噩夢開始了。
該站點使用單點登錄,登錄過程包含JavaScript異步操作,包含SOAP調用Web Service。登錄卻直接跳回了登錄頁面,沒有任何錯誤提示,考慮了以下可能:
1、是賬戶異常?在其他系統(tǒng)測試,賬戶狀態(tài)正常。
2、是JavaScript異步操作失???用IE開發(fā)人員工具跟蹤Javascript返回值,返回值正常。
3、是Web Service調用失敗?用Fiddler跟蹤Web Service的返回值,表明已經驗證成功,已經完成本地登錄。
反復跟蹤調試,才開始懷疑該站點SESSION丟失了:
1、JavaScript異步操作設置SESSION失敗,難道是因為同步訪問和異步訪問的SESSION ID是不同造成的?這在Flash中進行異步調用才出現(xiàn)過,JavaScript也會嗎?輸出同步訪問和異步訪問的SESSION ID值是一樣的。
2、建2個PHP測試頁面,在一個頁面中設置SESSION,在另一個頁面中卻讀不到。檢查php.ini相關設置,看起來是正常的,查看session.save_path = "C:/php/tmp"路徑,卻果真沒有SESSION相關的文件,設置連tmp目錄都沒有。
結局令人啼笑皆非,沒有tmp目錄,PHP無法寫入SESSION文件,自然SESSION就丟失了。為什么沒有tmp目錄,因為安裝包里沒有……我的3小時。
以上所述就是本文的全部內容了,希望能夠對大家學習php有所幫助。
相關文章
centos 7系統(tǒng)下安裝laravel運行環(huán)境的步驟詳解
Laravel框架對于開發(fā)網(wǎng)頁應用來說是一個絕好的的工具,最近正好又在學習linux系統(tǒng),所以下面這篇文章主要給大家介紹了在centos 7系統(tǒng)下安裝laravel運行環(huán)境的步驟,需要的朋友可以參考借鑒,下面跟著小編來一起學習學習吧。2017-08-08Laravel5.1 框架數(shù)據(jù)庫查詢構建器用法實例詳解
這篇文章主要介紹了Laravel5.1 框架數(shù)據(jù)庫查詢構建器用法,結合實例形式詳細分析了laravel5.1框架查詢構造器相關原理、使用技巧與操作注意事項,需要的朋友可以參考下2020-01-01