為什麼要用 Azure Linux VM 建置 WordPress
Azure Linux VM 為 Azure 中的 IaaS 服務,而會使用 Azure Linux VM 建置 WordPress 主要原因如下:
- 省錢,當然也有其他更省錢的非雲端方案選擇
- 有高度使用彈性與客製化的空間(充份享受 DIY 的樂趣)
- 與自家公司雲端整合成單一平台管理
想像一下如果今天要開餐廳,使用 Azure App Service 的服務,會提供店面、廚房、基本裝潢、結帳系統,店主只要專心做菜跟出餐就好,而 Azure Linux VM 則是只有給一間店面,剩下的裝潢擺設、廚房規劃、結帳系統…等,都要自己搞定,才能開張營業,但相對也比較能依照需求,客製化做出自己風格的餐廳。
下圖為使用 Azure App Service 與 Azure Linux VM 的比較圖,黃框為 Azure 所提供的服務,使用 Azure Linux VM 架 WrodPress 的話,系統管理、服務管理都要自己來,而 Azure App Service 則是只要專心使用 WordPress 的服務即可。用術語來說,Azure App Service 為 PaaS 服務,而 Azure Linux VM 為 IaaS 服務。

與 Azure App Service 相比,使用 Azure Linux VM 的優點有二,一為節省成本,二為可擁有自行客製調整空間,相對應外面的服務則是 VPS ,同樣都是透過虛擬化達到資源隔離的效果。但 VPS 少了許多雲端服務可供利用。
如果用積木來做比喻,使用 Azure 的服務,他有100個零件做排列組合,Azure 這類的雲端服務,可以搭配的工具會很多,做出來成品會比較細緻,而一般 VPS 服務,大概只有10個零件作排列組合,成品相對會粗糙一點,使用情境整體來說無絕對好壞,畢竟兩個使用情境不太相同。
言歸正傳,Azure Linux VM 安裝 WordPress 需要做好以下六大事項:
- 選擇合適的系統映像(VM image),這邊用 CentOS 8 作為範例,原因後面提
- 設定並建立 Azure VM 環境,這邊只做基本設定、網路設定即可
- 開好 Azure Linux VM 後,先更新、設定一下系統環境
- 安裝資料庫軟體(MariaDB)、PHP、網頁伺服器軟體(Nginx)這三大主要服務
- 安裝並設定 WordPress
- 開始使用 WordPress 寫文章
看起來好像很複雜,不過魔鬼都在這細節裡面,要用最低成本,榨出最高效能,關鍵在第4.步驟中的調校,如 Cloudway 表示有針對 各CMS 平台調教相關參數,只要使用他們的服務,就能輕鬆擁有這些功能。
另外,本篇教學暫時不會教到效能調教與 https 憑證安裝,雖然他們很重要,讓大家先體會一下怎麼把一個 WordPress 從無到有,徒手架好的感覺抓到再說。
本次 WordPress on Azure Linux 使用的架構
如前所述,使用 Azure 這類雲端服務,可規劃出的架構有許多種類,這邊舉三個常見的例子,本次使用的架構為 A 架構,也是一般在外常見 VPS 使用的做法,下面將針對各類架構進行說明:
A: All-in-one 的做法,將所有服務集中於單一 VM 上
B:將資料庫獨立出來,降低單一主機負擔,使用 Azure 原生的資料庫服務(Azure Database for MariaDB),或自己開一台 Azure Linux VM 安裝 MariaDB 服務也是一種做法
C:使用 B 的做法外,另外加上一台 WordPress 的服務主機,總共三台 VM,不過要處理兩台 WordPress 間資料同步問題,此種架構較能平均分散掉主機負擔
看起來好像很難理解,還是用開店比喻,A 方案是在開餐廳的初期,餐廳不大,但麻雀雖小,五臟俱全,要出餐、要接待送餐等工作,一個人要扛所有客人,會很辛苦。而 B 方案則是把工作分成內場跟外場,內場專心出餐,外場專心點餐與結帳,而 C 方案則是再多找一個外場員工來幫忙接待客人與結帳,萬一有一個人生病感冒,還可以繼續營業

這三種方案,相對而言,預期流量不會太高情況下,A 方案適合用於架站初期,而 B 則為流量變有點大了,且資料庫出現效能瓶頸,因此將資料庫服務,與 WordPress 網站服務分離,C 則為有一定數量的使用者,需要多開一台網站服務 VM 來分攤流量,並可降低單一 VM 在維護期間、意外無法正常使用其況下,造成服務中斷的成本。
當然還有一些進階的作法,如將上傳的圖片,統一放到 Azure Blob Storage 服務中,藉此降低主機的負擔,且又能節省硬碟使用空間…等許多玩法。