[WordPress] 備份現有的 WordPress Multisite 多站台,遷移至新的 GCP 帳號

[WordPress] 備份現有的 WordPress Multisite 多站台,遷移至新的 GCP 帳號

之前 在 Google Cloud Platform 上建立 WordPress 網誌

不過因為想要改用另一個 Google 帳號來管理,

因此得把目前的 WordPress 站台備份後,

用新的 Google 帳號建立好新機器,再將資料都轉移到新機器上面~

來記錄一下步驟吧~

 

1. 使用 UpdraftPlus 備份現有的 WordPress 網站

原本的 WordPress 網站上,我平常就有用 UpdraftPlus 自動定期備份

在做轉移之前,再按一次「立即備份」,

記得要同時備份資料庫和檔案:

 

備份資料我都是設定成自動上傳到 Google Drive,

這樣子也方便待會轉移機器後還原~

 

2. 在 Google Cloud Platform 上申請新的虛擬機器

這邊就照著 在 Google Cloud Platform 上建立 WordPress 網誌 這篇,

用新的 Google 帳號申請 Google Cloud Platform 後,

在左邊選單的 Marketplace (以前叫 Cloud Launcher) 搜尋 WordPress,

就可以找到一堆解決方案:

 

因為我現在是使用 WordPress Multisite (多站台) 來架設多個網站,

因此選用的是 WordPress Multisite Certified by Bitnami 這個:

 

在 Compute Engine 上啟動之後,等待它將機器準備完畢,

再到 VPC 網路 > 外部 IP 位址,

把 IP 從「臨時」改成「靜態」,確保 IP 不會再變動:

 

幫這 IP 取一個名字方便識別:

 

3. 設定 WordPress Multisite 主域名

我們必須先設定 WordPress Multisite 的主域名,

不然很多地方都會出問題…

 

我原本的網站名稱是 ephrain.net,

因此在新機器上,利用 Google Cloud Platform 提供的 Web SSH 功能,

執行下面的指令來設定 Multisite 的主域名:

sudo /opt/bitnami/apps/wordpress/bnconfig --machine_hostname ephrain.net

 

設定好主域名後,照網頁上的說明,

機器重開時這個主域名會被重設,

將 bnconfig 改名可以避免主域名被改掉:

sudo mv /opt/bitnami/apps/wordpress/bnconfig /opt/bitnami/apps/wordpress/bnconfig.disabled

 

設定好主域名,也可以順便把 Bitnami 的管理圖示關掉,

可以參考 停用 Bitnami 的管理圖示 (banner) 這篇的作法~

 

上面的這些指令可以在 Google Cloud Platform 提供的 Web SSH 上執行,

也可以用 gcloud 指令來做,效果都是一樣的。

 

4. 瀏覽新的 WordPress Multisite 站台

WordPress Multisite 的特點就是得用網域名稱 (domain name) 去連線,

它再根據你給的網域名稱,導到不同的網站內容 (但是是同一個 IP)~

因此我們不能直接連 http://35.236.155.5 這種網址,

而是應該連像 https://ephrain.net 這種有網域名稱的網址…

 

可是,原本的網域名稱是指向舊的 WordPress 站台,

在我將舊站台的資料都遷移到新機器之前,我也不想讓舊機器服務中斷,

因此直接去 Google Domains 把網域名稱指向新的 WordPress 主機

這個選項目前是不行的,該怎麼辦呢?

 

其實很簡單,只要騙過本機電腦就好了~

在 Mac 上修改一下 /etc/hosts,將網域與 IP 的對應加上去~

因為這是系統檔,記得要用 sudo 才能編輯:

sudo vi /etc/hosts

 

編輯後的內容如下,

我讓 ephrain.net 和 travel.ephrain.net 都指向新機器的 IP:

35.236.155.5    ephrain.net
35.236.155.5    travel.ephrain.net

 

這樣的話,如果去瀏覽 https://ephrain.net,

它事實上就是去訪問新的 WordPress Multisite 站台的 IP,

而且因為我們是用網域名稱去訪問,

因此 Multisite 依據網域名稱,正確的回應網站的內容~

 

5. 將 UpdraftPlus 的備份還原至新的 WordPress 站台

在步驟 2 我們建立好虛擬機器後,

就已經得到了 WordPress 預設的登入帳號 (user) 和密碼:

 

使用這個預設的帳號密碼,連上 https://ephrain.net 並登入,

接著去外掛區找 UpdraftPlus 把它裝起來:

 

裝好之後,到 UpdraftPlus > Settings 頁面,

選取之前在舊站使用的備份方式 (我的就是用 Google Drive):

 

這邊一樣照著網頁上的指示,點下連結後,

讓 WordPress 通過 Google Drive 的驗證:

 

現在到 Existing Backups 分頁,按下 Rescan remote storage,

就可以列出舊站曾經備份到 Google Drive 的資料了~

選擇最新的那一筆 (就是我們在步驟 1 做的備份) 按下 Restore 還原:

 

記得將所有的項目都選取起來還原:

 

按下 Restore 鈕後,UpdraftPlus 會先從 Google Drive 將備份檔下載下來,

時間有可能會很久 (假設你的網站資料不少的話,備份檔也會蠻大的),

Chrome 可能三不五時就會彈一個「網頁沒有回應」的訊息,

記得按 Wait 繼續等待,不要按 Exit Page 關閉網頁:

 

經過漫長的時間、與不停地點擊 Wait 繼續等待後,

終於出現了下面的頁面,表示 UpdraftPlus 終於把備份檔下載回來了,

可以準備開始還原資料了:

 

在上面的訊息裡面,有一些提示訊息,

例如我原本的網站是有啟用 HTTPS 的,但新的網站當然都還沒有設定,

這會導致還原之後,瀏覽網頁時會一直想導向到 HTTPS 網頁,

但因為沒有設定 HTTPS 而出現警告訊息。

不過這不是什麼大問題,可以在還原資料後再來加回 HTTPS。

所以現在就按下 Restore 開始還原吧~

 

按下 Restore 鈕後,就會出現下面的畫面,

耐著性子等待吧,不要按任何東西或關閉視窗:

 

等到還原完成後,會跳出一個 Session expired 訊息,

點下 Please log in again 連結重新登入網站:

 

要注意的是,這次登入就是使用舊 WordPress 站上的帳號密碼,

而不是 Google Cloud Platform 上提供的預設帳號密碼了,

因為相關的帳號資訊已經被完整的還原了~

假設在舊站上有兩個帳號 A 和 B,

在還原之後,原本預設的 user 帳號會消失,跑出 A 和 B,

UpdraftPlus 可以完整地還原真的很厲害:

 

登入之後,可以檢查一下是不是原本的文章、外掛、設定等等都還原了,

我的經驗是大部分都有還原,

外掛也都有自動裝回來,只是可能沒有啟用,要自己再去啟用一下~

 

6. 重新設定新站的 HTTPS

HTTPS 的設定是存在設定檔,看來 UpdraftPlus 是沒辦法備份的

(或許 UpdraftPlus Premium 版本有這功能?我不知道)

因此請照著 在 Bitnami WordPress 網站上啟用 HTTPS 這篇的說明,

重新在新站上設定好 HTTPS~

 

7. 設定 DNS 指向新站的 IP 位址

確定新站已經完全運作正常之後,

就可以修改 DNS,讓網域名稱指到新站的 IP 位址~

因為我是用 Google Domains 註冊網域名稱,

因此可以參考在 Google Domains 註冊自己的網域名稱,並指向 WordPress 主機 這篇,

將網域名稱指向新的 IP:

 

最後,記得再去把 /etc/hosts 裡把暫時加上的網域/IP 對應拿掉。

這樣設定完成之後,等待 DNS 生效,

新的 WordPress 網站就已經算是上線成功啦,

而且在這過程中間,舊站提供的服務是沒有中斷的~

等跑個一兩天確定新站都沒有問題之後,舊站也就可以關閉除役了~

 

這過程要做的事情不少,但其實都不算很難做,

大概不用半天就可以成功將站台轉移了~

過程中間因為 UpdraftPlus 備份的東西很多,

讓我們還原後少了許多麻煩,以免費版的功能來說相當令人驚艷,

也推薦給大家使用囉~^^

 

參考資料:

Bitnami WordPress Multisite For Google Cloud Platform

 

(本頁面已被瀏覽過 70 次)

發表迴響

你的電子郵件位址並不會被公開。

This site uses Akismet to reduce spam. Learn how your comment data is processed.