驗証 Bluehost WordPress 備份檔案的復原流程

Bluehost 從1/19用了將近一個月以來,感覺還蠻不錯的。提供的空間、硬體等級都不錯,雖然SSL設定有些波折,但客服反應也都很即時。所以想說就提早”續約” (renewal)好了,一看才嚇了一跳。因為網站的宣傳是 $2.95/m ,最多到60個月。但續約的價格貴了很多,要到 $6.99/m。我還特地問了一下客服,才知道原來這是普遍的行銷手段,俗稱「套、養、殺」。先用低價讓你使用-套,讓你開始用他來寫文章-養,等約到要續才發現漲了很多-殺。

網路有人說可以殺價,但不同的客服反應會不一樣,或者是要抱怨好幾次才有用,但也沒辦法降到跟重新註冊的價格一樣。這樣不免讓人有點小擔心,以後會不會變待肥羊,任人魚肉。想說目前 WordPress 都有在定期備份了,乾脆就來實際練習一下是不是可以成功的還原到自己裝的 Linux 上。這樣以後想搬家自然也不是問題了。

先提一下,本文主要是驗証 WordPress 可否復原,有些設定可能沒有考慮網站的安全性,以方便為主。實用上,還是請注一下這方面的問題,另外全程都是用 root 來操作。

Linux 版本

我測試用 Ubuntu 16.04 64bits 的版本。14.04 32bits 我有試過,但因為他的軟體套件比較舊,會需要做一些修改。為了方便紀錄,我就用 Ubuntu 16.04。選定好 Linux 版本後,就將他裝在實體機器上或虛擬機器裡,就可以繼續軟體的操作了。

備份檔

備份檔就是你的 WordPress 所有的相關資料。這個比較麻煩的是,有的 WordPress 代管網站不會提供很完整的備份功能,給你所有的東西。我記得當初從 WordPress.com 移出來時,只拿到資料庫的檔案,也許是沒特別去要的關係。Bluehost 因為可以 ssh 登入,能備的我都備了,包含:

  1. WordPress 資料庫 dump 檔,是放文章的內容
  2. WordPress 資料夾,上傳的圖片、外掛、佈景主題,Apache的.htaccess檔

如果你也可以用 ssh 登入,備份的方法下面簡單提一下

備份資料庫檔案

資料庫的名稱、用戶、密碼,存放在 WordPress 目錄下的 wp-config.php 檔內,找 DB_NAME, DB_USER, DB_PASSWORD 就有了。

備份 WordPress 資料夾

這部份比較簡單,就把所有東西 tar 起來加上剛的資料庫檔就好了,然後想辦法傳回自己的電腦上。

Linux 設定 WebServer (Apache2)

不廢話,如果你也是裝 Ubuntu 16.04 ,就照下面的貼上去就好了(假設你已經切換成 root 身份了)。主要是裝 Apache2, PHP。

修改 Apache 設定檔,允許 .htaccess 覆蓋設定,編輯 /etc/apache2/apache2.conf,把它修改如下。主要是 AllowOverride 那行

安裝 MySQL Server ,中間會問你 root 的密碼要設成什麼,因為是測試,直接設成123456。

新增 Host Name

因為我的 WordPress 有申請 Domain name ,但驗証復原的過程中是在私人機器上,資料庫和設定檔裡還是都用 domain name 去連,這樣會造成連線失敗。或者如果你的機器有連到網上,你會連線到網路上目前的網站,讓你誤以為設定完成。所以我們要把 domain name 設到新架的機器上,可以透過 Linux 的 /etc/hosts 檔來完成這個目的。下面是以本站的domain  name 為例

復原 WordPress

伺服器的設定差不多都完成了,接下來就是復原 WordPress 的備份檔。由於流程有點鎖碎,就直接以操作命令當解釋。我自己的備份檔是一個 .tar.xz 檔案,解開後就是 public_html 目錄和 wp.sql 檔案。基本上把 wp.sql 倒回去,public_html 改一下名就可以了。注意!這邊也是假設你用 root 的身份執行

驗証成果

經過上面的步驟,Wordpress 復原的工作就完成了。為避免你連到網路上的實體網站,建議你把網路線拔掉,以確保沒任何誤會。你可以從 Linux 系統內試著用原本的 domain name 去瀏覽你的網站,應該就可以了。但因為domain name的關係在, Linux 外是沒辦法連進去的。如果要可以連,可以在第11行改成取代成IP的方式,這樣應該就行了。或者比較麻煩在該機器上把 host name 設對,我們是驗証用的,應該簡單在 Linux 內瀏覽即可。

搬家到Google Compute Platform (GCP) 筆記

最近把東西都從 Bluehost 搬到GCP,中間有些小差異需要修改,就在這邊記下。

Google Search Console 更新 sitemap script

網誌有更新時,通知 Google Search Engine 來重新檢索

PLink 自動備份

GCP 需要將 Public Key 登錄,才能用憑証登入。所以在備份時,指定key file和帳號。再透過遠端命令,將資料 tar 起來輸出到 stdout 再轉到 local 存起來。

MYSQL 備份 Script

backup_sql.sh 的內容

MYSQL 創建使用者

在前面的測試流程,是用 root 來直接復原資料庫。在實際上這比較不安全,我們可以先創建一個與原 WordPress 資料庫的使用者,在由其去創建table。以下指令還是賦予全部的權限,安全性並沒有提升。

Virtual Host

前面測試的流程是把所有的WEB檔案放在 /var/www/html,實務上放在個人使用者的目錄,可以做一個修改。(/etc/apache2/sites-enabled/000-default.conf)

Apache User

把 Apache 執行的使用者,改成跟上面的 Virtual Host 同樣的使用者,才能在上傳時操作。

 

SSL 憑証 (Let’s Encrypt)

參考 Let’S Encryption 網站,已有針對 Apache+Ubuntu16.04 的命令可以執行,自動修改設定檔和產生金鑰。據說3個月到期前還會自動更新~~~

Leave a Reply