You are currently viewing 將 WordPress 從 Bluehost 搬移到 Amazon Lightsail

將 WordPress 從 Bluehost 搬移到 Amazon Lightsail

我的 WordPress blog 網站派瑞練習曲及子網域的寵物友善地點網站寵物隨想曲原本是架設在 Bluehost 上,在使用3年後,因為網路速度及價格等因素,我決定搬移到 AWS Lightsail 上,這篇分享我為什麼要搬移,以及搭配 All-in-One WP Migration 外掛的搬移步驟。

為什麼要將 WordPress 從 Bluehost 搬移到 Amazon Lightsail?

當分我想架設自己的blog網站時,看了網路上幾個架設 WordPress 的教學,其中網路主機的選擇比較多人提到的大概就是 Bluehost、A2 Hosting、Cloudways 等等(沒有什麼台灣架站教學介紹 Amazon AWS)。最後我選擇了價格相對便宜的 Bluehost。

在使用 Bluehost 架設 WordPress 網站的過程及後續維護中,確實有一些優點:

Bluehost 優點:

  • Bluehost 優惠的首次購買價格

Bluehost 常常給初次購買的使用者相當優惠的價格,尤其是第一年的價格,當初我一次買3年的 Basic 方案,平均每月的價錢為 $3.95美元。寫文章的當下(2023.06),我再次查看 Bluehost 給初次購買的使用者,主打第一年 $2.95/月的低價。

  • Bluehost 方便初學者架設 WordPress 網站

使用 Bluehost 架設 WordPress 網站的步驟非常簡便,對於初學著來說非常好上手。Bluehost 也有自己的 WordPress plugin,且從後台就可連到 WordPress 控制面板,方便使用者維謢網站。Bluehost 有方便的操控後台 (cPanel),可以線上使用 File Manager、phpMyAdmin、SSH access 等,方便更細節的網站操控,另外也有中文的介面,對說中文的使用者更人性化。

但使用了3年後,也發現 Bluehost 的一些缺點:

Bluehost 缺點:

  • Bluehost 網路連線速度慢

Bluehost 的主機位於美國,而且不能讓購買主機的用戶選擇想要的主機位置。這樣對於我們網站主要是服務台灣或亞洲的使用者來說,客戶端連線的速度緩慢,連線時間變長,而且也會影響到網站的 SEO。這也是我要從 Bluehost 遷出的最主要原因。

  • Bluehost 續約費用高

上面提到 Bluehost 常會給初次購買的使用者相當優惠的價格,但是當要續約的時候,就會發現價格怎麼會變那麼貴。當初我一次買3年的 Basic 方案,平均每月的價錢為 $3.95美元,但3年後要續約時,它給的續約價就要到 $9.99/月。寫文章的當下,我再次查看 Bluehost 給初次購買的使用者,主打 $2.95/月的低價,但詳細一看,只有第一年是 $2.95/月,之後每月是 $10.99/月。若一次買3年,平均每月約 $4.95。這也是另一個我想搬離 Bluehost 的原因。

為什麼選擇 Amazon Lightsail?

首先要先了解自己網站的使用量及客戶源,由於我的網站還沒有太多使用者,所以我想找較輕量化、較便宜的雲端主機提供者。再來,因為我網站的客戶大多以台灣及亞洲為主,所以希望主機是在台灣或亞洲區域。

而 Amazon Lightsail 就是給架設輕量化網站一個較便宜、並提供較快速友善的設定方式的選擇。和 AWS EC2 不同的是,EC2主機需要使用者自己掌握更多系統、網路等細節設定,較適合企業及高效能需求的應用。而 Amazon Lightsail 則適合架設輕量的網站、Web Service 等等。

比較過 Google Cloud,發現Google Cloud 並沒有提供像 Amazon Lightsail 這樣適合輕量化網站的方案,價錢也比較貴,雖然 Google Cloud 有在台灣的資料中心,我最後還是選擇 Amazon Lightsail 的日本區域。

Amazon Lightsail 介紹

目前 Amazon Lightsail 的定價有分成 Linux/Unix :3.50 USD/月、5 USD/月和 10 USD/月,並且都有搭配 3 個月的免費方案。由於我的網站目前還沒有太多客戶,所以就先選擇 $3.5/月的方案。假如之後需求量增加,再來升級方案。

將 WordPress 從 Bluehost 搬移到 AWS Lightsail 步驟

1. 使用 All-in-One WP Migration 外掛備份 WordPress 網站

在原本 Bluehost 的 WordPress 網站安裝「All-in-One WP Migration」外掛。「All-in-One WP Migration」是一個為了方便 WordPress 網路轉移而設計的外掛,它的免費版本已經足夠我的網站從 Bluehost 轉移到 Amazon Lightsail。

在左邊 All-in-One WP Migration,點選「備份」–> 右邊點選「建立備份」。

備份完成後,點選備份檔案右側三個點的圖案,選「下載」,即可下載這個備份檔。

2. 在 Amazon Lightsail 中啟動和設定 WordPress 執行個體

我主要是按照 Amazon 的教學課程:在 Amazon Lightsail 中啟動和設定 WordPress 執行個體,來啟動 Lightsail 執行個體,並安裝/設定 WordPress。所以我就快速帶過這邊的步驟。

登入 AWS 主控台後,選擇 Lightsail,在 Instances 頁面點「Create instance」。

點選「Change AWS Region and Availability Zone」來更改主機區域。

我選擇「Tokyo」,因為我的客戶端大多是台灣用戶,所以選擇相對鄰近,Latency 較低的日本區域。用 Amazon 提供的 Connection Health Check 工具測試後,也是 Tokyo 區域對於台灣使用者較快。

下方 Platform 選「Linux/Unix」,blueprint選「Wordpress」。

Instance plan 我選了最小的 $3.5/月,先這樣使用看看,之後如果有需要,再升級更高的方案。

等待 Instance 建立後,點選 SSH 圖示,使用 SSH 連進主機。

繼續按照文件指示使用指令來擷取預設的應用程式密碼:

cat $HOME/bitnami_application_password

再以 instance 的 public IP 來登入 WordPress 網站:

http://PublicIpAddress/wp-login.php

instance 的 public IP 可以在 AWS Console 裡查看:

登入 WordPress 網站,Username 為「user」,Password 為剛剛擷取的預設應用程式密碼。

登入後就可以看到新建立的 WordPress 網站的後台了!

接下來要建立 Lightsail 靜態 IP 地址並將它連接到 WordPress 執行個體。

在 Lightsail Instance 頁面點選你的執行個體。

再選「Networking」頁面 –> 「Create static IP」。

將這個 static IP attach 到執行個體。

接下來,你就可以改用這個 static IP 連到你的 WordPress 網站,即使執行個體重啟,IP 也不會改變。

3. 在 Amazon Lightsail WordPress 中使用 All-in-One WP Migration 外掛匯入備份網站

在新建立的 Lightsail WordPress 安裝 「All-in-One WP Migration」外掛。

在左邊 All-in-One WP Migration 中點擊 Import (匯入),「匯入來源」選「檔案」,再選擇剛剛在步驟1在 Bluehost WordPress 網站的備份檔案。

這個時候你可能會跟我一樣遇到錯誤訊息「Your file exceeds the maximum upload size for this site: 80 MB」,這是因為我的備份檔有 1.5 GB,超過目前網站系統設定的 80 MB 上限。

你的可以透過 WordPress 後台工具來查看目前網站相關數值。

WordPress 後台左邊點選 Tool(工具) –> Site Health (網站狀態)。

上方選 Info (網站狀態資訊) 頁面,下方展開 「Media Handling (媒體處理)」及「Server (伺服器)」,即可看到相關數值。

我的解決方式是編輯 /opt/bitnami/php/etc/php.ini 檔案來修改網站相關數值,提升上傳檔案大小上限成2GB。

SSH 連進 Lightsail instance,修改 /opt/bitnami/php/etc/php.ini

$ sudo vi /opt/bitnami/php/etc/php.ini

在檔案內找到以下相對應的參數修改。

修改 max_execution_time 為 0。

; Maximum execution time of each script, in seconds
; https://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
; Perry modified for backup file upload
;max_execution_time = 30
max_execution_time = 0

修改 max_input_time 為 0。

; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
; long running scripts.
; Note: This directive is hardcoded to -1 for the CLI SAPI
; Default Value: -1 (Unlimited)
; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds)
; https://php.net/max-input-time
; Perry modified for backup file upload
;max_input_time = 60
max_input_time = 0

修改 memory_limit 為 2048M。

; Maximum amount of memory a script may consume
; https://php.net/memory-limit
; Perry modified for backup file upload
;memory_limit = 512M
memory_limit = 2048M

修改 post_max_size 為 2048M。

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; https://php.net/post-max-size
; Perry modified for max upload filesize
;post_max_size = 80M
post_max_size = 2048M

修改 upload_max_filesize 為 2048M。

; Maximum allowed size for uploaded files.
; https://php.net/upload-max-filesize
;Perry modified for max upload filesize 
;upload_max_filesize = 80M
upload_max_filesize = 2048M

最後,重啟系統服務。

$ sudo systemctl restart bitnami.service

再看看 WordPress 網站狀態,就可以看到數值改變了。

接下來,可以繼續使用 All-in-One WP Migration 來匯入備份, 左邊 All-in-One WP Migration 中點擊 Import (匯入),「匯入來源」選「檔案」,再選擇剛剛在步驟1在 Bluehost WordPress 網站的備份檔案。

接著靜靜等待它匯入完成。

匯入完成後,再使用 static IP 連上 Lightsail 的 WordPress 網站,應該就可以看到你原本在 Bluehost 備份的網站囉!

4. 修改 DNS 設定,將網址導向 Lightsail WordPress 網站

我原本網站的 Domain Name 就是直接在 Bluehost 購買,現在我將 WordPress 網站搬移到 Amazon Lightsail 了,Domain Name 服務還是可以繼續使用 Bluehost 的。我的規劃是,在 Bluehost Domain Name 到期前,還是繼續使用 Bluehost 的 Domain Name 服務,快到期時,再決定是不要轉移到 Amazon AWS 或是其他服務提供者。

所以現階段,需要修改 Bluehost Domain 設定,將網址導向 Amazon Lightsail 的 WordPress 網站。

在 Lightsail 首頁的 Domains & DNS (網域和 DNS) 索引標籤上,選擇 Create DNS zone (建立 DNS 區域)。

選擇 「Use a domain from another register」,輸入網域名稱 Domain Name,然後「Create DNS Zone」。

記錄這個頁面顯示的 Name servers,接下來要去 Bluehost 修改。

進入 Bluehost 後台,左邊選 Domains,再選 DNS 頁面。

點擊「Edit」。

選「Custom」,然後把剛剛在 Lightsail 記錄下來的 Name Server 新增上去。

回到 Lightsail 「Domain & DNS」頁面,選擇剛剛建立的 DNS Zone

點選 Assignment 頁面,點擊 「Add assignment」。

在 Select a domain (選取網域) 欄位中,選擇網域或子網域。

在 Select a resource (選取資源) 下拉式清單中,選擇 Lightsail WordPress 的執行個體。

選擇 Assign (指派)。

這樣就完成 DNS Domain Name 的重新指向,要注意的是,可能會需要等待一些時間 (可能超過1天),讓變更傳遞至整個網際網路的 DNS。

另外還有一項就是如果你的 WordPress 有需要使用 HTTPS 連線,可以按照下面的教學,使用 Bitnami HTTPS configuration tool (bncert) 去安裝 HTTPS 憑証。

Enabling HTTPS on your WordPress instance in Amazon Lightsail

經過上面3個步驟,你的 WordPress 應該就已經成功從 Bluehost 轉移到 Amazon Lightsail 了。當然,我相信每個人的 WordPress 網站各有不同,在搬移的過程都會遇到大大小小不同的問題,這就需要按照每個問題的不同,一一去解決了。

5. 補充:將 Domain Name 從 Bluehost 轉移到 AWS R53

將 WordPress 網站搬移到 Amazon Lightsail 一段時間,使用起來沒什麼問題後,我原本在 Bluehost 的 Domain name 也快到期了,再過一陣子就需要 renew 了,索性就把 Domain Name 也一起轉移到 AWS R53 下,這樣就剛全脫離 Bluehost 了,網站相關的花費就全由 Amazon AWS 收取。

原本在 Bluehost Domain Name 一年費用為 19.94美元,而轉移到 AWS R53, .com 的價錢為每年 13美元,之後還要再另加管理託管區域及提供 DNS 查詢的費用。這就需要再繼續使用一段時間後,再來比較看看價錢。

將 Domain Name 從 Bluehost 轉移到 AWS R53 的步驟我主要參考 Bluehost 和 Amazon AWS 的官方文件:

How To Transfer a Domain Name To A New Registrar

Transferring registration for a domain to Amazon Route 53

文件內的步驟其實都講得很清楚,以下我就大概記錄一下我的過程。

在 Bluehost 後台,Domains 內,確自 Contact Info 裡的資訊是正確的,尤其是 Email 位址。

我目前 DNS 的 Name Servers 已經設定為 AWS 的 DNS servers(見上方步驟4)。

在 Domains –> Security 頁面,先關閉 Transfer Lock。

拉到下方 Transfer Authorization / EPP code,按send Code。Bluehost 會將 EPP Code 寄到你的 Email,之後在 AWS R53 會用到。

進入 AWS 主控台,找到 R53 服務,左邊選擇 Domains –> Registered Domains,右邊選擇 Transfer in –> Single Domain。

輸入你要轉移的 Domain Name。

輸入剛剛 Bluehost 寄給你的 EPP Code。

輸入你的聯絡訊息 Contact Info 之後就可以 Submit Request。

左邊 Domains –> Requests,裡面可以看到有一個 request 正在 In Progress。

接下來你應該會收到 Amazon AWS 寄來的通知信,及下一年 Domain Name 的付款通知,Amazon R53 會先收費用,而這個 Domain Name 會被延長一年。

再過幾分鐘,應該就會收到 Bluehost 寄來 email,說有一個 transfer request,如果要加入處理速度,你可以擊點信中的聯連,會連到 Bluehost 後台。

下面勾選你的 Domain 後,左側選 Transfer EPP,就可以看到有一個 request,按 Approve

你會再收到 Bluehost 的通知信,還有 Amazon AWS 寄來的 email 確定信,請擊點信裡的確定連結。

再查看 AWS R53 Domains –> Request,就可以看到狀態是 Successful。

這樣 Domain Name 就可以成功從 Bluehost 轉移到 AWS R53 囉。

使用 Whois 查詢,也確實可以看到 Registrar 從 whois.fastdomain.com 變成 whois.registrar.amazon.com。

轉移前:

轉移後:

延伸閱讀:

Perry Lin

Perry Lin 有十幾年科技業工作經驗,包含網通、晶片及雲端技術領域,喜愛旅遊及打羽球,曾經在巴西首都巴西利亞實習,去阿拉斯加看極光、南美巴拉圭、非洲坦尚尼亞等地旅遊。