[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 不會再變動:
3. 設定 WordPress Multisite 主域名
我們必須先設定 WordPress Multisite 的主域名,
不然很多地方都會出問題…
我原本的網站名稱是 ephrain.net,
因此在新機器上,利用 Google Cloud Platform 提供的 Web SSH 功能,
執行下面的指令來設定 Multisite 的主域名:
sudo /opt/bitnami/configure_app_domain --domain ephrain.net
上面的這些指令可以在 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 指向新機器的 IP。
雖然我的 WordPress 是多站型態 (multisite),
有 ephrain.net 和 travel.ephrain.net 兩個網域名稱,
但在遷移網站這一步裡面,我們並不需要操作到像 travel.ephrain.net 這種子網域:
35.236.155.5 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 備份的東西很多,
讓我們還原後少了許多麻煩,以免費版的功能來說相當令人驚艷,
也推薦給大家使用囉~^^
參考資料: