今天的工作是遷移一個PHP站點至新服務(wù)器。
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的雞東網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!創(chuàng)建一臺Windows Server 2008虛擬機,并在其上停掉net stop http服務(wù)(避免爭搶80端口),安裝配置 Apache + PHP,遷移站點至新服務(wù)器,站點正常打開,Apache + PHP運行正常,連接MySql Server正常,一切都美好,本想著半小時完成的工作,緊接著噩夢開始了。
該站點使用單點登錄,登錄過程包含JavaScript異步操作,包含SOAP調(diào)用Web Service。登錄卻直接跳回了登錄頁面,沒有任何錯誤提示,考慮了以下可能:
1、是賬戶異常?在其他系統(tǒng)測試,賬戶狀態(tài)正常。
2、是JavaScript異步操作失???用IE開發(fā)人員工具跟蹤Javascript返回值,返回值正常。
3、是Web Service調(diào)用失?。坑肍iddler跟蹤Web Service的返回值,表明已經(jīng)驗證成功,已經(jīng)完成本地登錄。
反復(fù)跟蹤調(diào)試,才開始懷疑該站點SESSION丟失了:
1、JavaScript異步操作設(shè)置SESSION失敗,難道是因為同步訪問和異步訪問的SESSION ID是不同造成的?這在Flash中進行異步調(diào)用才出現(xiàn)過,JavaScript也會嗎?輸出同步訪問和異步訪問的SESSION ID值是一樣的。
2、建2個PHP測試頁面,在一個頁面中設(shè)置SESSION,在另一個頁面中卻讀不到。檢查php.ini相關(guān)設(shè)置,看起來是正常的,查看session.save_path = "C:/php/tmp"路徑,卻果真沒有SESSION相關(guān)的文件,設(shè)置連tmp目錄都沒有。
結(jié)局令人啼笑皆非,沒有tmp目錄,PHP無法寫入SESSION文件,自然SESSION就丟失了。為什么沒有tmp目錄,因為安裝包里沒有……我的3小時。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。