如果你變更了(le)主機,或者保持開發和(hé)線上獨立,你需要進行網站遷移。這(zhè)是一個(gè)線下(xià)工作,或許僅僅是一個(gè)檢查列表,你需要根據你的(de)需要和(hé)服務器環境作出相應的(de)調整。下(xià)面我就爲大(dà)家分(fēn)享一下(xià)我網站遷移的(de)經驗,希望對(duì)大(dà)家有所幫助。
一、選用(yòng)空間商
前期準備選用(yòng)西部數碼的(de)虛拟空間,上傳代碼和(hé)數據庫花費不少時(shí)間,結果發現綁定域名數量有限,且域名不能映射到指定的(de)目錄,在數據同步這(zhè)一塊有很多(duō)瓶頸,最後左思右想還(hái)是選擇國外比較好的(de)空間商godaddy。
二、數據導入
fa68的(de)數據有将近達到一個(gè)G,雖然godaddy的(de)phpmyadmin提供了(le)可(kě)上傳1G的(de)文件,但考慮到網頁上傳速度太慢(màn),且有可(kě)能網絡中斷,然後通(tōng)過遠(yuǎn)程客戶端native連接的(de)方式導入執行sql,通(tōng)過一個(gè)多(duō)小時(shí)的(de)導入過程,發現native提示300多(duō)條錯誤,隻有部分(fēn)表導入成功,提示錯誤爲MySQL server has gone away,可(kě)能是DB連接超時(shí),以及數據導出的(de)mysql版本和(hé)導入的(de)版本有沖突,所以被迫取消這(zhè)種方式。最後無意中在Godaddy cPanel上看到SSH功能,那就好辦了(le),登錄舊(jiù)服務器通(tōng)過SCP命令将文件遠(yuǎn)程同步到現在新的(de)服務器上,其實到這(zhè)一步剩下(xià)的(de)事情應該是很簡單了(le),但我鬼使神差的(de)使用(yòng)了(le)mysqldump命令去導入sql文件到數據庫(如:mysqldump -uusername -ppwd -hlocalhost -P3306 fa68 < fa68_20140906.sql 導入),結果每次執行都已失敗告終,最後查閱了(le)資料才發現命令使用(yòng)錯誤,正常導入sql文件的(de)命令是:mysql -uusename -ppwd -hlocalhost -P3306 fa68 < fa68_20140906.sql,多(duō)麽低級的(de)錯誤,連我自己都不能饒恕自己了(le)。
三、URL重寫
因爲在購(gòu)買之前是确認過godaddy支持rewrite功能,原本以爲隻要代碼上傳上去,修改下(xià)某些配置,就能跑起來(lái)了(le),但世事難料,訪問僞靜态頁面的(de)時(shí)候報:No input file specified,也(yě)就是404錯誤頁面,最後通(tōng)過各種方法排查出:是godaddy php沒有識别出pathinfo導緻的(de),因爲godaddy使用(yòng)的(de)是Fastcgi模式,php不支持目标網址的(de)pathinfo解析,既然找到問題那就好辦了(le),修改網址根目錄下(xià)的(de).htaccess文件中的(de)這(zhè)句 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] 改爲 RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L],到此完美(měi)解決網站訪問問題。
四、服務器配置
因前期沒有對(duì)網站訪問統計數據進行過分(fēn)析評估,首次買的(de)godaddy配置是Resource Level 1,是最基本的(de)配置了(le),配置大(dà)概如下(xià):CPU 1個(gè)、Physical Memory 512M、進程100個(gè),結果網站一上線,導緻大(dà)量的(de)php crash,php主進程重啓,CPU達到100%,内存崩潰,導緻新注冊用(yòng)戶、發的(de)廣告信息數據大(dà)量丢失,一看QQ已經有很多(duō)頭像在閃動,知道爲什(shén)麽很多(duō)嗎?因爲全部都是網站用(yòng)戶來(lái)投訴了(le),後台監控中心告急,最後配置升級到Resource Level 2,各種配置參數翻倍,該問題得(de)到解決。
在網站遷移過程中遇到問題是避不可(kě)免的(de),在做(zuò)之前一定要考慮清楚,細心細心再細心,就不會出現這(zhè)些問題了(le)。