Feed on
Posts
Comments
Email訂閱

起因:12/2收到godaddy 關於 my hosting account is causing an overload of the shared resources on this server,godaddy馬上將帳號整個搬移到另一台機器,導致網站服務中斷四個多小時。godaddy並說要在一個月後觀察這個account的CPU使用量是否仍然超過shared hosting account的限制(但godaddy 並未說明這個限制為何),如果依然超過將保留暫停我的hosting account的權利。Godaddy support team無法判斷原因為何,只提供most hit pages,前三名分別為
相關遊記widget小工具,xajax server php,xajax client javascript…。但我覺得問題可以出現widget、圖庫、論壇、php輸出,js檔案讀取等的gzip壓縮,因此初步先把部分的壓縮功能取消。後來幾天都還有收到godaddy的警告函,因此下定決心要釐清問題。由於冬烘居與旅聯網掛在同一個hosting account,為了釐清問題,於是進行切割。將原本的Deluxe hosting單獨留給waytogo.cc用,donghong.cc搬出(godaddy deluxe hosting以上可以host多個web site)。步驟如下:

  1. Day0~Day1 將hosting account的primary從donghong.info改成waytogo.cc,步驟:先將waytogo.cc從hosting account移除,更改primary hosting的domain name從donghong.info成為waytogo.cc。這時可以選擇繼續把donghong.info加回成為secondary,或是乾脆獨立出去。
  2. Day1 在godaddy每個申請的domain會附送一個free 的economical hosting,先把donghong.info搬到這個free hosting。按照程序,啟用,設定domain,但由於冬烘居資料尚未搬遷還無法正常運作。至此旅聯網與冬烘居正式分道揚鑣。
  3. Day1 將冬烘居所使用的資料庫備份並下載,包括wordpress(ver 3.02)與gallery(2.2.1),另外也要下載wordpress的user uploads(wp-content/uploads)以及gallery的圖檔目錄與檔案(g2data)。
  4. Day2 在新的hosting account安裝gallery(2.3.1)與wordpress(3.0.3)。其中wordpress3.0.3可以正常安裝,但gallery2.3.1安裝到第八步驟時建立table時會中斷。將備份的gallery資料庫restore到新account,改以upgrade的方式升級系統核心與資料庫表格,雖可順利升級。但是出現亂碼(原資料庫是mysql4.0,現為mysql5.0,需要設定編碼)、圖片無法顯示、管理介面有些選項無法操作(後兩項後來查出是godaddy的free hosting夾帶標頭廣告所導致的干擾)。wordpress將資料庫還原後,亦無法顯示(後查出是資料庫中wp_options中有原來hosting server的絕對路徑,必須一起異動才行)
  5. Day 3 考量到重新安裝gallery與wordpress會導致設定錯誤與插件需要再安裝等問題,於是改從原server將系統程式完整複製一份到新的server。但是步驟4所出現的問題並沒有解決。
  6. Day4~Day5 將free hosting 升級成付費的,可能由於操作錯誤,變成新申請一個hosting account,跟godaddy反映請他更正。hosting account升級的正確的程序應該是先升級(不用考慮一年還是兩年),這時godaddy會給你一個最小的使用量。之後再針對這個account去做renewal即可。如果一開始就考慮自訂一個週期,可能就會發生產生一個新account。
  7. Day5 用debug的方式查出wordpress的資料庫中的wp_options紀錄了一些plugins安裝之後的路徑(譬如wpg2,由於會去使用到gallery目錄下的embed.php,如果此檔找不到,將導致wordpress無法啟動),由於是絕對路徑所以必須跟隨server的轉移異動。經過修正後果然wordpress已可正常啟動。
  8. Day5 gallery的資料庫應無絕對路徑的問題,經調整為paid account已可正常顯示圖片。而編碼問題在之前旅聯網資料庫從4.0轉移到5.0時也遇到過,當時是使用 mysql_query(“SET NAMES ‘UTF-8’;”, $hDB)來解決。但在gallery2.3.1改使用mysqli,似乎無 ‘UTF-8’這種編碼,還要確定這是否是gallery程式的限制。
  9. 至此除了資料尚未完全搬完之外,gallery與wordpress已可正常運作且blog文章可使用wpg2 plugin連結gallery圖像了。其他代辦事項包括:編碼問題,升級到gallery2.3.1(godaddy shared hosting由於未升級到apache 2以上版本所以無法安裝gallery3.0)


gallery 顯示亂碼與重安裝問題:

  1. 因之前資料庫儲存在mysql4.0內定編碼為latin1,因此使用godaddy的備份功能轉出後,雖然可以用utf8檢視正常,但是當restore回資料庫(mysql 5.0)時,會顯示出亂碼,此時在一般php網頁雖可以mysql_query(“SET NAMES ‘UTF-8’;”);(注意是UTF-8,而非utf8)來正確顯示,但是gallery內部的資料庫連線程式難以更動,因此不建議此法。參考網路上的解法,在備份出來的.sql檔案前頭加上 /*!40101 SET NAMES utf8 */;,也就是告訴mysql接下來的還原資料庫連線請用unicode的方式儲存回資料庫。這樣還原資料庫之後,gallery會在連線時採mysql_query(“SET NAMES ‘utf8’;”) (注意這時就是utf8),這樣gallery就可以正常顯示中文而不會出現亂碼了,而且在phpmyadmin也可以看到中文。如果還是出現亂碼,那是因為gallery有cache,可在以下的網頁清除cache。 http://yourgalleryurl/lib/support 。
  2. 升級到gallery2.3.1時遇到問題,檢查系統時出現警告
    Notice: Undefined offset: 4 in /usr/share/gallery2/modules/core/classes/GalleryUtilities.class on line 1224
    Notice: Undefined offset: 3 in /usr/share/gallery2/modules/core/classes/GalleryUtilities.class on line 1224
    Notice: Undefined offset: 2 in /usr/share/gallery2/modules/core/classes/GalleryUtilities.class on line 1224
    Notice: Undefined offset: 1 in /usr/share/gallery2/modules/core/classes/GalleryUtilities.class on line 1224
    不管它而且把一些缺的檔案補足之後,雖然可以完成升級,但是某些相簿使用theme如Carbon卻無法呈現,出現未啟用Carbon Theme的訊息,要進到網站管理(Site admin)頁面卻出現admin session timeout的問題,查遍gallery forum都叫人要清除cache,但是就算cache清除之後仍然無法解決。因此決定仍然使用2.2.1,以後有機會再升級到2.3.1。原則上到時重新安裝2.3.1,而不再用升級的方式。
  3. 將一些沒用到的plugin與theme移除,以加快gallery執行速度。

 

留言區