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

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

網站搭建 這件事,繼上次給大家科普了用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
| |

更新 CentOS 服務器

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

yum update 
| |

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

安裝 CentminMod LNMP

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

curl -O https://centminmod.com/betainstaller.sh && chmod 0700 betainstaller.sh && bash betainstaller.sh
| |

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

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

注冊你的 .com 網址

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

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

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

注冊 Cloudflare CDN

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

到 Cloudflare 免費注冊

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

| |
| |
填寫你剛買的網址,不需要 http:// 或 https://,就 domain.com 就可以了
| |
選 FREE 免費的方案
| |
確定方案

更新 Nameservers

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

| |

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

| |
| |

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

| |

添加 DNS 記錄

| |
回到 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 (可選)
| |
最後點「Cypto」先將 SSL 換成「Flexible」

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

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

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

| |

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

touch /etc/centminmod/custom_config.inc
echo "LETSENCRYPT_DETECT='y'" >> /etc/centminmod/custom_config.inc
| |

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

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

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

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

| |

輸入「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"

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

| |

往上翻,會看到剛建立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」。

| |

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

| |
| |
| |

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

##留言

<Giscus /> — 留言區 placeholder

正式版會用 GitHub Discussions 驅動的留言系統,免費、無廣告、支援 Markdown。