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