花 1 小時就建好 WordPress 的 Nginx 教學

玻璃陳
//
更新於 2022 年 7 月 15 日
//
2 個留言

網站搭建 這件事,繼上次給大家科普了用 VPS 去搭建翻牆利器後,其實應該會有人想,買了一個 VPS,然後只搭一個 SS 機場,不是很浪費嗎?是的,我也這麼覺得。你們現在所看到的這個網站,其實跟我的 SS 機場是共存在同一個 VPS 上的。是不是很屌?!來!崇拜我吧!!!所以今天,我就以一個可能只比小白強那麼一點點的角度,來寫這個 網站搭建 教程,希望可以用最簡單的方法,去使想自己建站的童鞋,輕鬆的完成這樣一個以前我也覺得無比艱巨的任務。事不宜遲,馬上開始!

前言

雖然這個文章已經是很久的了,留著給對裡學自架 VPS 的朋友參考的。

2022 年 7 月加註

以前我建站,因為什麼都不會嘛,就只會通過 cPanel 或在自己主機安裝傳統的 LAMP (Linux, Apache, MySQL / MariaDB, PHP) 。但做了很多的資料搜集後 seafoodholdhand.com 決定使用 CentminMod(現在已經不是了,在用 Cloudways)。

它有幾個優點,首先它會幫你搭建 LEMP (Linux, NGINX, MySQL / MariaDB, PHP),然後優化安裝並保護服務器 (自帶 CSF 防火牆) 。最重要的是即使在配置很低的服務器上,也運作順暢,而且速度非常快!

在本文中,我將詳細介紹如何使用 CentminModVultr VPS 服務器上安裝 WordPress+WooCommerce

再利用 Let’s Encrypt 獲得免費 SSL 證書,因為現在的所有網站都應該使用 HTTPS 。

最後用 CloudFlare 替網站提供免費的 CDN 網絡,DDoS 和其他安全保護。

官方的完整英文教學可以到這裡:https://centminmod.com/getstarted.html

Note: 我推薦使用 Vultr VPS  和 Digital Ocean,當然你仍可以選用, BangwagonHost, Linode 或者其他的供應商都可以的,其實大同小異的。

Nginx 教學事前準備

  1. 安裝了 CentOS 7 的服務器,我將 Vultr VPS  作為示範。
  2. VPS 建議擁有 1GB RAM 。如果之後需的話,可以添加額外的交換空間(swap 分區)。
  3. SSH 客戶端,Windows 的用 Xshell(或者 Powershell),macOS 的用內置的 Terminal ,Android 的用 Termius 。
  4. 一顆能折騰的心。

禁用 SELinux

建議臨時禁用 SELinux ,登入 VPS,通過以下命令來完成操作:

setenforce 0
花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建

更新 CentOS 服務器

更新你的服務器,你應該經常這樣做。通過以下命令來完成操作:

yum update 
花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建

看到這個畫面,按「Y」就可以了。

安裝 CentminMod LNMP

通過以下命令來完成操作:

curl -O https://centminmod.com/betainstaller.sh && chmod 0700 betainstaller.sh && bash betainstaller.sh
花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建

安裝大約需要 40 分鐘,完成之後,你會夠得到一些關於安裝的總結信息。

所以現在我們可以利用這些時間,先完成下面的東西 (相信我,看著它也不會快一點的) 。

注冊你的 .com 網址

這個就是我們平常用的 .com .net .org 網址,這就像一家實體店的地址。沒有這個地址可以嗎?當然可以啦!把服務器的 IP 給記下來,111.111.111.111 就是我網址了……嗯,并沒什麼卵用。我建議你還是買個網址比較好用。

這裡我會用 Namecheap 做示範,他們的性價比超高,經常會有很便宜的網址,而且售後服務很好。

買了網址後,可以進行下一步。

注冊 Cloudflare CDN

非常出名的 CDN ,什麼是 CDN?自己去搜一下吧,很難三言兩語解釋清楚,反正你現在只要知我道它能幫網站加速就是了。

到 Cloudflare 免費注冊

注冊都非常的簡單,很直接,跟著它的指示就好了。

花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建
花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建
填寫你剛買的網址,不需要 http:// 或 https://,就 domain.com 就可以了
花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建
選 FREE 免費的方案
花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建
確定方案

更新 Nameservers

之後「NEXT」或「Continue」就會看到類似的畫面,叫你更新 Namerservers

花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建

我們要回到 NameCheap 的網址控制板面去更改 nameservers,到你的 Domain List 裡。

花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建
花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建

到「NAMESERVERS」變更為「Custom DNS」,再把剛拿到的「maria.ns.cloudflare.com」和「pete.ns.cloudflare.com」換進去 (你們可能的會不一樣),然後點右邊綠色的「√」就好了。

花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建

添加 DNS 記錄

花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建
回到 Cloudflare 的「DNS」

把下面這四個加到你的 DNS Record 裡

  • A > 你的網址.com > VPS 的 IPv4 > Add Record
  • A > www > VPS 的 IPv4 > Add Record
  • AAAA > 你的網址.com > VPS 的 IPv6 > Add Record (可選)
  • AAAA > www > VPS 的 IPv6 > Add Record (可選)
花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建
最後點「Cypto」先將 SSL 換成「Flexible」

CentminMod 安裝 WordPress 和 Let’s Encrypt 的 SSL 證書

切回 SSH 客戶端,很大機會它已經斷連了。

重新登入,應該會看到下面的畫面 (如果沒有的話,很有可能是 CentminMod 還在裝)

花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建

先輸入這兩行,開啟 Let’s Encrypt 的使用功能。

touch /etc/centminmod/custom_config.inc
echo "LETSENCRYPT_DETECT='y'" >> /etc/centminmod/custom_config.inc
花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建

輸入後,它什麼都沒有顯示是正常的。

這樣我們就可以開始安裝 WordPress 了,輸入

cd /usr/local/src/centminmod ./centmin.sh

等大約 30 秒,會出現這個畫面

花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建

輸入「22」的 Add WordPress Nginx vhost + Cache Plugin

按下面的去問題作答,不懂是什麼的話,跟我一樣的就可以了。但記得要改裡面的資料!例如你的網址,不要跟我一樣打 yourdomain.com 。
Do you want to continue with Nginx vhost site creation? [y/n] Y
//你想繼續 Nginx 的虛擬主機網站創建?
Enter vhost domain name you want to add (without www. prefix): yourdomain.com
//輸入您想要添加的虛擬主機網址(不含 www 前綴)
Create a self-signed SSL certificate Nginx vhost? [y/n]: Y
//創建一個自簽名的 SSL 證書?
Get Letsencrypt SSL certificate Nginx vhost? [y/n]: Y
//獲取 Letsencrypt SSL 證書?
You have 4 options: 
1. issue staging test cert with HTTP + HTTPS (untrusted)
2. issue staging test cert with HTTPS default (untrusted)
3. issue live cert with HTTP + HTTPS (trusted)
4. issue live cert with HTTPS default (trusted)
Enter option number 1-4: 4
//輸入選項編號 1-4:輸入"4"
Theme Setup: 
Install CyberChimps Responsive Theme (cyberchimps.com/responsive-theme/) [y/n]: N
//安裝 Cyber​​Chimps Responsive 主題

Wordpress Setup: 
Set custom WP Admin Display Name ? [y/n]: N
//設置自定義 WP Admin 顯示名稱?
Install WordPress in subdirectory /blog ? [y/n]: N
//安裝 WordPress 的子目錄/博客?
Disable Auto Generated WP Admin Username / Password ? [y/n]: Y
//禁用自動生成的 WP Admin 用戶名/密碼? 
Disable wp-login.php password protection ? (less security) [y/n]: Y
//禁用 wp-login.php 密碼保護?建議不要開啟,十級麻煩!

Enter desired WP Admin Username: username
//輸入所需的 WP 管理員用戶名:
Enter desired WP Admin Password: password
//輸入所需的 WP 管理員密碼:
Enter email address for Admin User for WordPress Installation: [email protected]
//輸入管理員用戶的 WordPress 安裝電子郵件地址:

1). KeyCDN Cache Enabler (default & recommended)
2). Redis Nginx Level Caching (may have issues with some wp plugins)
3). WordPress Super Cache
--------------------------------------------------------
Enter option [ 1 - 3 ] 3
//Wordpress 的緩存插件,我會選 3,之後可以換的。

Enter email address for WordPress Installation: [email protected]
//輸入 WordPress 安裝的電子郵件地址:

Create FTP username for vhost domain (enter username): username
//創建 FTP 用戶名:
Do you want to auto generate FTP password (recommended) [y/n]: Y
//你想自動生成 FTP 密碼(推薦)

acmetool.sh is in beta testing phase
please read & provide bug reports &
feedback for this tool via the forums
https://centminmod.com/acmetool

continue [y/n] ? Y
//輸入"Y"

完成之後又會看到這個畫面

花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建

往上翻,會看到剛建立 vhost 的資料:

-------------------------------------------------------------
FTP hostname : 111.111.111.111
FTP port : 21
FTP mode : FTP (explicit SSL)
FTP Passive (PASV) : ensure is checked/enabled
FTP username created for yourdomain.com : ftpac
FTP password created for yourdomain.com : zZCGvrm3c3DspGh04ZOHz
-------------------------------------------------------------
vhost for yourdomain.com created successfully


vhost ssl for yourdomain.com created successfully

domain: https://yourdomain.com
vhost ssl conf file for yourdomain.com created: /usr/local/nginx/conf/conf.d/yourdomain.com.ssl.conf
/usr/local/nginx/conf/ssl_include.conf created
Self-signed SSL Certificate: /usr/local/nginx/conf/ssl/yourdomain.com/yourdomain.com.crt
SSL Private Key: /usr/local/nginx/conf/ssl/yourdomain.com/yourdomain.com.key
SSL CSR File: /usr/local/nginx/conf/ssl/yourdomain.com/yourdomain.com.csr
Backup SSL Private Key: /usr/local/nginx/conf/ssl/yourdomain.com/yourdomain.com-backup.key
Backup SSL CSR File: /usr/local/nginx/conf/ssl/yourdomain.com/yourdomain.com-backup.csr

upload files to /home/nginx/domains/yourdomain.com/public
vhost log files directory is /home/nginx/domains/yourdomain.com/log

------------------------------------------------------------
SSH commands to uninstall created WordPress install and Nginx vhost:
  /root/tools/wp_uninstall_yourdomain.com.sh
------------------------------------------------------------

------------------------------------------------------------
Wordpress Auto Updater created at:
  /root/tools/wp_updater_yourdomain.com.sh
cronjob set for every 8 hours update (3x times per day)
------------------------------------------------------------

Wordpress domain: yourdomain.com
Wordpress DB Name: wp1976529922db_30874
Wordpress DB User: wpdb30874u11711
Wordpress DB Pass: wpdbAUSpRCGk0c5Cduffp23604
Wordpress Admin User ID: 294291
Wordpress Admin User: username
Wordpress Admin Pass: password
Wordpress Admin Email: [email protected]
Restarting nginx (via systemctl):  [  OK  ]

將它們抄到安全的地方,以後有可能需要用到的,然很輸入「24」離開 CentminMod 。

最後的設定

回到 CloudFlare,點「Cypto」將 SSL 換成「Full」。

花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建

到「Page Rules」創建三個規則,跟足下面的設定就可以了,但也記得換成自己的網址哦!

花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建
花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建
花1小時就建好 WordPress 的 Nginx 教學 | 網站架設 | Centmin Mod, CloudFlare, Namecheap, Namesilo, Nginx, PHP, VPS, Vultr, WooCommerce, WordPress, 網站搭建

最後,登入 WordPress 後台「https://yourdomain.com/wp-admin/」安裝及設置 CloudFlare WordPress plugin  和 WooCommerce 。完成!!

玻璃陳
雙子座,一名毒撚(宅男中的宅男),同時也是Mario他爸。兼職 Digital Marketer ,2016年開始接觸到現在,雖然沒有像其他大 Boss 一樣年薪破千萬(破千是有的),但過程中找到很多的滿足感。希望可以跟大家分享我的經驗同時,從你們身上學習更多。

2 Comments

  • Avatar of ayu

    嗨~在最後《最後的設定》第二步驟說明是不是筆誤?應該是《點「Cypto」將 SSL 換成「Full」》這樣才對嗎?

Leave your comment