16.
網站備份與還原
一、 實體檔案的備份
- 實體檔案的備份只要把網頁根目錄整個複製或用FTP把整個網頁目錄下載下來即可。務必記得備份在網頁目錄外的xoops_data及xoops_lib
- 若是linux主機可以用pietty等終端機工具登入,然後下指令,將整個目錄打包亦可:
- -zcvpf 備份檔.tar.gz 欲備份目錄,例如:tar -zcvpf web.tar.gz public_html
- 若是想要最精簡的備份:只備份uploads目錄即可(亦即使用者上傳的所有檔案)。
二、 利用phpMyAdmin備份MySQL資料庫
- 資料庫要備份之前,可以先清除幾個資料表,以縮小資料庫檔案。
- (1) session資料表、logcounterx_log資料表(如果有裝logcounterx計數器的話)
- (2) 若「多餘」欄位有值,可將該資料表勾選,然後進行最佳化。
- 資料庫要備份前,先確定內容中的中文是否正確,若看起來是亂碼,且資料表的校對是「latin1_swedish_ci」(一般都是Big5網站居多)那麼,請裝修正過的phpMyAdmin(http://www.tad0616.net/modules/tad_uploader/index.php?of_cat_sn=17 )以讀取正確資料。
- 備份SQL檔並不需要停止MySQL資料庫:
- (1) 首先,先進入phpMyAdmin,萬一忘記帳密,請開啟mainfile.php或/xoops_data/data/secure.php,裡面有資料庫帳密紀錄(一般是後者)
- (2) 在左邊的資料庫下拉選單,點選您要備份的資料庫
- (3) 按右上的「匯出」頁籤連結,並在「匯出方式」選擇「自訂」
- (4) 在「資料表」的下拉選單按下「全選」,表示要備份所有資料表(預設即為全選)
- (5) 輸出的部份請勾選「儲存為檔案」,檔名可自訂,編碼視網站編碼選取。 格式請用SQL格式
- (6) 「格式特定選項」勾選「結構和資料」的欄位,並取消「顯示註釋」,若只是單純備份,「最大程度相容資料庫系統或舊版本的 MySQL 伺服器」可選「NONE」。
- (7) 「物件建立選項」勾選「新增 DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT 指令 」,也就是順便加入刪除舊資料表格的指令,這樣還原時會比較順利,不會因為舊表已存在而無法復原(相當於覆蓋舊資料表之意)。「IF NOT EXISTS」則可取消。
- (8) 「資料匯出選項」部份請選擇第一項「給每個 INSERT (插入) 指令加上欄位名稱 」。如此,也就是一筆資料就一行指令之意!這樣雖然會佔空間,但是對於日後還原,確有莫大好處!可以確保您的還原可以完整進行,而且檔案再大也不怕。最後按下「執行」即可。
三、 連上phpMyAdmin時出現forbidden?
- 開啟 /etc/apache2/conf.d/ra-phpmyadmin,將現在的 IP 加入,重開 apache2
- 直接利用站長工具箱的「http://網址/modules/tad_adm/pma.php」備份亦可。
四、 還原備份
- 實體檔案的備份只要把檔案上傳至新主機的網頁目錄即可,Linux主機則需注意目錄的寫入權限,一般而言,uploads、xoops_data底下所有目錄檔案要能寫入(777)。
- 「TYPE=MyISAM」在MySQL 5.1.8版以後就不支援這種用法了,所以,若是您的MySQL版本大於5.1.8版者,一定要改為「ENGINE=MyISAM」才行。
- 資料庫的則利用phpMyAdmin的「匯入」功能,將SQL整個匯入指定的資料庫即可。
- 直接利用站長工具箱的「http://網址/modules/tad_adm/pma.php」備份亦可。
- 若是搬移網站,記得修改mainfile.php內容:
define('XOOPS_ROOT_PATH', 'C:/xampp/htdocs'); //23行
define('XOOPS_PATH', 'C:/xampp/xoops_lib'); //27行
define('XOOPS_VAR_PATH', 'C:/xampp/xoops_data'); //29行
define('XOOPS_URL', 'http://localhost'); //43行
五、 用BigDump來匯入(當SQL檔非常大的時候)
- 用文字編輯器開啟bigdump.php後,到45行分別輸入資料庫名稱、資料庫帳號、資料庫密碼等資訊,以便讓bigdump.php可以連線資料庫。
- 第83行設定語系($db_connection_charset = 'utf8';),否則中文會變成亂碼或問號。
- 修改後存檔,接著請將bigdump.php以及剛剛匯出的SQL檔利用FTP上傳到網頁根目錄中。
- 開啟瀏覽器,輸入「http://網址/bigdump.php」,他會自動找出SQL檔出來,您直接按Start Import連結即可開始進行匯入。