WordPress是一種非常流行的部落格網站平台,也可以當作一個内容管理系統(CMS)來使用, 是世界上使用最廣泛的部落格系統之一。WordPress有非常多優秀的插件,使得這個開源産品變得非常容易擴充,滿足不同的需求。
我準備利用一個系列的文章,來展示如果利用阿裡雲的各種産品(彈性計算,資料庫,安全等等),搭建一個完整的WordPress網站。内容包括:
- 一、 搭建基礎網站應用
- 二、 域名,短信和郵箱
- 三、 動靜分離和CDN加速
- 四、 資料庫緩存和管理
- 五、 伺服器橫向擴充
- 六、 網站安全
一、搭建基礎網站應用
搭建一個基本的網站還是比較簡單的,我們一步一步來,這個部分的架構圖如下,包括:
- VPC虛拟網絡:在阿裡公有雲環境中建立出一個二層邏輯隔離的區域網路絡環境,大部分産品都會部署在這個安全的環境中
- ECS伺服器:安裝WordPress應用程式,是整個網站的核心
- MySQL資料庫:存儲WordPress資料
- NAS檔案存儲:存儲WordPress應用檔案和上傳檔案
- 彈性公網IP(EIP):對外暴露的IP位址

準備VPC虛拟網絡
VPC虛拟網絡(
https://www.aliyun.com/product/vpc)需要規劃,可以很簡單,一個VPC一個路由表搞定;也可以很複雜,跨地域多VPC還要和線下機房不沖突。網絡規劃建議看看這篇:
https://help.aliyun.com/document_detail/54095.html。這次為了示範友善,采用簡單的一個VPC的方式即可。
準備EIP彈性公網IP
最好不要用ECS的綁定固定IP,未來更新換代遷移啥啥都不友善,買個BGP多線公網EIP(
https://www.aliyun.com/product/eip),可以友善地把IP保留下來,價格也和固定IP一樣,沒道理不選EIP。購買之後IP記下來備用。
準備ECS伺服器
對于WordPress來說,通用型g5系列或者計算型的c5系列都是不錯的ECS伺服器(
https://www.aliyun.com/product/ecs)選擇,作業系統我選的是CentOS,大家可以随意。
注意使用的VPC,另外注意不申請公網帶寬,綁定之前那個彈性公網IP比較靈活。
ECS啟動起來後,綁定前面買的EIP
确定安全組裡面80端口是打開的(預設是打開的),WordPress一般是利用80端進行對外服務的。如果沒有打開的話,填一條也很簡單。
準備MySQL資料庫
WordPress使用的是MySQL資料庫(
https://www.aliyun.com/product/rds/mysql)。阿裡雲MySQL資料庫的高可用版采用經典一主一備的雙機熱備架構,适合80%以上的業務情況。主節點故障時,主備節點秒級完成切換,整個切換過程對應用透明。提供單可用區執行個體和多可用區執行個體,主備節點位于同一地域的不同可用區,提供跨可用區的容災能力,且不額外收費。買的時候要注意VPC的選擇。
啟動起來之後,需要加載内網位址(添加ECS白名單)才能用起來。選擇對應的ECS即可。
建立好了之後注意擷取内網位址,後面會用到。
然後為資料庫建立賬号一個root,為了示範友善我開了一個高權限賬号,但是也比較危險,建議大家還是老老實實用普通賬号做授權吧。
然後添加一個空的資料庫wordpress給應用使用,因為有了root賬号,就沒有用授權賬号了
準備NAS檔案存儲
為什麼要用到NAS存儲(
https://www.aliyun.com/product/nas)呢?主要原因在于未來進行橫向擴充之後,應用資料不再需要複制同步,友善運維。可以來一個SSD性能型,另外最近還上了一款更厲害的極速型,時延可以達到0.5ms,回頭有機會可以試一下。
建立之後添加一個挂載點,注意選擇VPC。
建立完成後記錄下來挂載點,備後面使用。
在ECS中挂載NAS
首先将NAS挂載上面,參考:
https://help.aliyun.com/document_detail/91476.html。
用root使用者登陸到ECS裡面去,并執行下面的指令,安裝NFS用戶端并建立挂載目錄。
sudo yum install nfs-utils
mkdir /root/wordpressdata
為了可以實作開機自動挂載NFS,需要修改/etc/fstab檔案并添加類似下面這樣的一條記錄。注意裡面的挂載點要替換成前面建立的NAS挂載點,挂載目錄如果有變化也需要注意。
12bcb24a3ad-mkb68.cn-hongkong.nas.aliyuncs.com:/
/root/wordpressdata nfs4
vers=4.0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0
然後重新開機ECS,用df –h指令檢視一下是否确實挂載成功。如果沒有挂載成功怎麼辦?再重新開機一次試試!
在ECS中安裝Docker并啟動WordPress鏡像
安裝WordPress參考一下官方安裝手冊,
https://codex.wordpress.org/zh-cn:%E5%AE%89%E8%A3%85_WordPress。這次示範我采用了docker的方式,相對更友善些。本着自己折騰比較好玩的精神,自己搭一個docker很友善。阿裡雲也有自己的ECI彈性容器執行個體(
https://www.aliyun.com/product/eci),有興趣可以試一試。
首先安裝docker,參考:
https://docs.docker.com/install/linux/docker-ce/centos/sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
下面兩個指令,第一個啟動docker,第二個讓docker在ECS重新開機時都可以自動啟動
sudo systemctl start docker
sudo systemctl enable docker
docker安裝好了,然後在ECS中拉取并啟動WordPress的鏡像。首先要在NAS裡面建立一個目錄來存放WordPress應用檔案,并且将鏡像中的/var/www/html目錄映射到這個目錄中。另外也要将80端口也映射出來。
mkdir /root/wordpressdata/html
docker run --name mywordpress \
-p 80:80 \
-v /root/wordpressdata/html:/var/www/html \
-d --restart=always wordpress
利用docker ps看一下是不是跑起來了。
docker ps
在ECS中設定WordPress
打開浏覽器,輸入EIP的位址,如果不出意外就可以打開WordPress網站了。第一次使用設定語言,當然是中文啦。
第二步設定資料庫,裡面的資訊是之前建立資料庫的時候設定的。
然後設定站點名稱,管理者使用者等資訊。
不出意外就這麼搞定了,用IP就可以通路WordPress網站了。