Last Updated on 2021-11-05 by Clay
2021 年 07 月 28 日,在我的個人網站 Clay-Technology World(就是你們眼前看到的這個網站)滿兩週年時,我腦海中突然閃過了要架設第二個網站的念頭。
這是我很久以前就計畫要做的一件事,只是這個計畫突然在我腦海中鮮活了起來、督促我開始做事、暗示著我『現在難道不是最好的時機嗎?』
於是這篇文章就誕生了。
跟兩年前對架站仍缺乏認識的我相比,這次我打算使用 Linode 主機來架站,也是因為我的個人網站一直架在共享主機(shared host),那速度已經讓我差不多感到厭煩了,於是乎這次就選擇了所謂的 VPS(Virtual Private Server)來架新的網站。
而且這個網站由於是全中文的、目前也沒有規劃要有第二種語言,所以伺服器位置應該會距離台灣越近越好。
哦對了,雖然標題上已經寫得很清楚了,但還是再次聲明,這篇筆記的主題內容是以 Linode VPS 主機來架設 WordPress 網站。
希望這篇筆記能給需要的人一些參考。
Step 1: 購買 VPS 主機
首先自然是去 Linode 購買主機:https://www.linode.com/
註冊好帳號後,你應該可以前往 Linode 管理頁面了。
你可以選擇你要購買的主機,在這裡,因為我要建立的網站主要的目標客群還是台灣人,所以選擇了大家最推薦的日本機房;如果你的目標客群在其他地方,當然你就該選擇離你的目的地越近的機房越好。
而我選擇的是最便宜的 5 美金/Month 方案。
這是因為我聽朋友說基本上可以無痛升級,所以就先選了最便宜的方案嘗試看看。
購買好主機、確認開機後,我們應該可以看到主機的 IP 地址。
打開終端機,使用 ssh root@your_ip
後再輸入你設定的密碼,應該便能連上你所購買的主機。
不過 IP 地址最重要的是要將接下來所購買的網域指向它。
Step 2: 購買網域
我自己是去 GoDaddy 購買網域的,一口氣買了兩年,在網路上找一下也可以找到折扣代碼。
不過,可能得看點廣告解鎖就是了。(個人經驗)
購買完網域後,我們接著設定 DNS 的 A 紀錄(A Record)。這是為了讓我們所購買的網域能夠指向我們所架設網站的主機。
設定步驟如下:
- 登入 Godday 網域控制中心
- 點選網域,進入網域設定頁面
- 找到管理 DNS 按鈕
- 修改目前的 a 紀錄
- 主機:填入 @ 即可,代表指向網域名稱
- 指向:填入剛剛拿到的 Linode 主機 IP 地址
- TTL:預設 1 小時就很 ok
- 儲存
接著差不多過幾個小時後設定才會生效,這裡我們先繼續下一步動作。
Step 3: 登入遠端電腦
登入遠端電腦,更新套件庫,建立一般使用者帳號,並加入管理員權限。
ssh root@your_ip
apt update
adduser USERNAME
adduser USERNAME sudo
接著我們應該禁止遠端登入 root 帳號、設立防火牆,不過再繼續紀錄下去內容會變得太過龐大,這裡就先跳過。
總之先切成你所建立的帳號開始使用這台主機吧!
順帶一提,之後使用指令操作這台主機時,如果有缺乏的套件,那很正常。
畢竟這是新的主機,所以缺的套件裝上去也就是了。本文就不一一贅述。
Step 4: 部署 WordPress
Step 4-1: 安裝 docker-compose
在這裡我們使用 docker-compose
來快速部署。
首先在遠端主機安裝 docker-compose
。(如果已經安裝則可跳過此步驟)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
Output:
docker-compose version 1.29.2, build 1110ad01
如果能成功顯示版本號,則代表已經成功安裝。
Step 4-2: 安裝 WordPress
建立個資料夾,並設定部署腳本:
mkdir my_wordpress
cd my_wordpress
vim docker-compose.yml
在 docker-compose.yml 中寫下:
version: "3.9"
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
wordpress_data: {}
Step 4-3: 執行部署腳本
在 my_wordpress
資料夾中執行:
sudo docker-compose up -d
如果你沒有看到報錯訊息(如果缺乏 Docker,可以參考這篇文章安裝:[Linux] Docker 基本介紹與建立步驟筆記),那麽打開瀏覽器輸入 IP 地址,這時若是看到下列 WordPress 安裝畫面,則代表可以開始架設你的網站了!
感謝分享,最近也剛好也想在Linode上架wordPress~
哈哈 我每次架都會出現不一樣的問題…
真的要一邊 Google 一邊排除
感謝分享,照著步驟很輕易就完成了。
另外想請問,ssl是怎麼安裝的呢?有機會分享嗎?謝謝
SSL 的部分我是透過 Cloudflare 幫我完成的。
或許可以參考:https://clay-atlas.com/blog/2021/05/08/wordpress-cn-cloudflare-cdn/