Windows下Apache + PHP SESSION丟失的慘痛經曆

來源:互聯網
上載者:User

標籤:windows   伺服器   虛擬機器   

今天的工作是遷移一個PHP網站至新伺服器。

建立一台Windows Server 2008虛擬機器,並在其上停掉net stop http服務(避免爭搶80連接埠),安裝配置 Apache + PHP,遷移網站至新伺服器,網站正常開啟,Apache + PHP運行正常,串連MySql Server正常,一切都美好,本想著半小時完成的工作,緊接著噩夢開始了。

該網站使用單點登入,登入過程包含JavaScript非同步作業,包含SOAP調用Web Service。登入卻直接跳回了登入頁面,沒有任何錯誤提示,考慮了以下可能:

1、是賬戶異常?在其他系統測試,賬戶狀態正常。

2、是JavaScript非同步作業失敗?用IE開發人員工具跟蹤Javascript傳回值,傳回值正常。

3、是Web Service調用失敗?用Fiddler跟蹤Web Service的傳回值,表明已經驗證成功,已經完成本地登入。

反覆跟蹤調試,才開始懷疑該網站SESSION丟失了:

1、JavaScript非同步作業設定SESSION失敗,難道是因為同步訪問和非同步訪問的SESSION ID是不同造成的?這在Flash中進行非同步呼叫才出現過,JavaScript也會嗎?輸出同步訪問和非同步訪問的SESSION ID值是一樣的。

2、建2個PHP測試頁面,在一個頁面中設定SESSION,在另一個頁面中卻讀不到。檢查php.ini相關設定,看起來是正常的,查看session.save_path = "C:/php/tmp"路徑,卻果真沒有SESSION相關的檔案,設定連tmp目錄都沒有。

結局令人啼笑皆非,沒有tmp目錄,PHP無法寫入SESSION檔案,自然SESSION就丟失了。為什麼沒有tmp目錄,因為安裝包裡沒有……我的3小時。

Windows下Apache + PHP SESSION丟失的慘痛經曆

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.