Hexo 遷移至 Wordpress,個人部落格搬家全紀錄
本篇文章是自己將個人部落格從 Hexo 遷移至 WordPress 服務的記錄,包含
- Google Cloud Platform 伺服器架設 WordPress
- 設定 Domain
- Hexo 文章導入
Hexo 和 WordPress 之間的抉擇
Hexo 用了一年多,優點是網頁載入速度快、不用額外買主機(直接架在 Github Pages )、文章編輯支援 Markdown 語法。但缺點是對於沒有程式底子的人會較難去進行後續的維護(例如主題和外掛更新)、換了電腦就無法撰寫文章、在討論的人沒有那麼多,解決 bug 時要找資料找比較久。所以最近毅然決然的決定要將部落格搬家到 WordPress ,除了可以解決上述的缺點之外,還有一個很重要的點是佈景主題和外掛的豐富度大勝 Hexo 啊!
Hexo 搬家到 Wordpres 的步驟
搬家所需的步驟大概如下,如果你是想要知道怎麼用架設 WordPress 的讀者,也以看完步驟1和步驟2後直接左轉,逛逛我的其他文章。
- 用 Google Cloud Platform(GCP)的伺服器架設 WordPress
- 設定 Domain
- Domain 設定
- 增加 SSL 安全連線
- 導出 Hexo 的文章,並導入 Wodpress
- 在 WordPress 內整理文章
- 圖片跑掉,重新設定內容摘要部分
- 舊網站文章轉址
使用 GCP 伺服器架設 WordPress
如果你是第一次使用 Google Cloud Platform(本篇文章中簡稱GCP)的話,Google 會送你一年 $300 美金的免費使用金額,如果你跟我一樣是月流量不算太高的個人部落格的話,就等於你這一年都能免費使用!
建立 WordPress 的服務
我這邊是用網路上大家推薦的「WordPress with NGINX and SSL Certified by Bitnami and Automattic」(要注意有很多 WordPress 安裝服務,名字要選對),會選用這個是因為做於 Web 服務器來講, NGINX 相比 Apache 效能較好,且資源使用率較少,對服務器負擔較小。
這裡要記得選擇 asia-east1 的服務器,這個才是 Google 在台灣彰化的伺服器,訪問速度較快,然後再選擇你要的 Machine type 和 Boot Disk type 和容量,這些都會影響你的費用。建議控制在 $20 元左右,這樣可以預留 $5 美元左右的緩衝空間(免費額度$300/年 = $25/月),之後按下部署。
部署完畢後可以進入 Deployment Management 頁面查看自己主機的訊息,裡面有你的部落格網址,管理員帳號、密碼…等資訊。建議趕緊登入 WordPress 的管理員帳號把密碼換掉比較安全。
將網址改成靜態 IP
前往 VPC 網路的管理介面,找到你的 VM(虛擬主機)名稱,然後在 type 欄位將 IP 改為靜態位址,避免伺服器重啟後的 IP 位置變更,別人就會找不到你的網站。
使用 SSH 安全加密連線,遠端控制伺服器
到 Compute Engine 的管理介面,在 SSH 連接的部分選取「在瀏覽器視窗開啟」,便會開啟一個視窗版終端機可以讓你在裡面執行指令。
在這邊裡面我們可以去更改 NGINX 伺服器組態設定、更改 WordPress 的網址設定…等,但首先我們要來去除惱人的 Bitnami 浮水印。
除去 Bitnami 浮水印
透過 Bitnami 服務建立的 WordPress 會有浮水印,這邊可以藉由一行簡單的指令將它去除。sudo /opt/bitnami/apps/wordpress/bnconfig —disable_banner 1
現在可以看到你的 WordPress 網站已經完全架好了!接著就來設定網域,讓醜醜的數字 IP 網址變成精美的網址吧!
網域設定
Google Domain DNS 設置
我自己是使用 Google Domain 的服務,如果想知道怎麼申請 Google Domain 的話看參考我的這篇文章「Hexo + Github Pages:教你設定部落格的專屬網址,含網域購買教學」
到 Google Domain 中選取你的網域,並至 DNS 設定中設定如下:
名稱 / 類型 / TTL / 資料
@ / A / 1h / 34.80.19.36
這個意思是讓你的網域對應到你剛剛在 VPC 網路那邊設定的靜態 IP,以我的例子來講就是將 larrynote.com 對應到 34.80.19.36 這個 IP 位置。
要注意設定後網址要生效會需要一點時間,所以就稍微耐心等待一下。
申請 SSL 憑證,建立網站加密連線
這時候切換回前面開啟的視窗版終端機,如果已經關掉的話在 Compute Engine 那邊的 SSH 連接再開一次。
並輸入以下指令,請把下面的 example@mail.com 和 exmple.com 置換成你自己的資訊。sudo /opt/bitnami/letsencrypt/scripts/generate-certificate.sh -m example@mail.com -d example.com
輸入後他會問你是否要以此資訊建立 SSL 憑證,也會再問你是否要自動更新 SSL 憑證,我這邊都是選擇 Y。
當建立好了之後就可以回到 WordPress 安裝 Really Simple SSL 這個外掛,並一鍵啟用 SSL,接下來你就可以看看是否自己通過以下檢測啦!
文章到這邊 WordPress 建置已經完成,接下來要講的是怎麼搬家啦!
Hexo 文章導入至 WordPress 及相關設置
產出 Hexo 的文章檔案
調整 Hexo 的 RSS 摘要格式以利 WordPress 導入,在 _config.xml
檔案中調整設定如下
feed:
type: rss2
path: atom.xml
limit: 0
hub:
content: true
接著透過 hexo g
的指令來產生最新的 atom.xml
檔案。
將文章導入 WordPress
WordPress 內建有提供一個導入 RSS 的工具,由於我們剛剛使用 GCP 部署的 WordPress 是使用 PHP 7 以上的版本,所以在導入的時候會有異常。這邊可以直接把 /wp-content/plugins/rss-importer/rss-importer.php
這個路徑中發生錯誤的第 72 行程式碼直接註釋掉即可。set_magic_quotes_runtime(0);
整理文章圖片、文字排版
由於之前用 Hexo 寫的文章內的圖片會全部跑掉,所以這邊要重新設置圖片。建議用網路圖床,避免 WordPress 肥大,這邊可以參照「Hexo 優化:新增圖片圖床、更換文章閱讀計數器服務」這篇文章,來申請網路圖床。
這邊要費的功夫最大,建議可以搭配 Yoast SEO 這個外掛來順便檢視自己的文章是否有良好的 SEO 結構。
將舊文章網址導向新文章網址
之前在 Hexo 的文章網址跟現在在 WordPress 的文章網址結構如果是不一樣的話,那麼便需要進行重新導向的動作,避免遺失掉舊有文章的流量,畢竟舊有文章網址還是能帶來一定的 SEO 流量。
我這邊是使用 Redirection 這個外掛,來將文章網址一篇篇的做 301 重新導向的動作。
結論
網站搬家的過程是非常辛苦的,所以一開始選擇適合自己的產品真的很重要啊!
當然如果之後怕自己又突然不喜歡 WordPress 想換回 Hexo 的話,也可以繼續同步在 Hexo 上發表文章,雖然這樣會比較麻煩一點,但不失為一個作法!
如果你對搬家的過程有什麼疑問或是對 Hexo 或 WordPress 有什麼心得都歡迎在下方留言與我討論或分享,希望這篇文章能夠幫助到你。