網站搭建 這件事,繼上次給大家科普了用 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 防火牆)。最重要的是即使在配置很低的服務器上,也運作順暢,而且速度非常快!
在本文中,我將詳細介紹如何使用 CentminMod 在 Vultr VPS 服務器上安裝 WordPress+WooCommerce。
再利用 Let’s Encrypt 獲得免費 SSL 證書,因為現在的所有網站都應該使用 HTTPS。
最後用 CloudFlare 替網站提供免費的 CDN 網絡,DDoS 和其他安全保護。
官方的完整英文教學可以到這裡:https://centminmod.com/getstarted.html
Note: 我推薦使用 Vultr VPS 和 Digital Ocean,當然你仍可以選用,BangwagonHost, Linode 或者其他的供應商都可以的,其實大同小異的。
Nginx 教學事前準備
- 安裝了 CentOS 7 的服務器,我將 Vultr VPS 作為示範。
- VPS 建議擁有 1GB RAM。如果之後需的話,可以添加額外的交換空間(swap 分區)。
- SSH 客戶端,Windows 的用 Xshell(或者 Powershell),macOS 的用內置的 Terminal,Android 的用 Termius。
- 一顆能折騰的心。
禁用 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 免費注冊
注冊都非常的簡單,很直接,跟著它的指示就好了。
更新 Nameservers
之後「NEXT」或「Continue」就會看到類似的畫面,叫你更新 Namerservers
我們要回到 NameCheap 的網址控制板面去更改 nameservers,到你的 Domain List 裡。
到「NAMESERVERS」變更為「Custom DNS」,再把剛拿到的「maria.ns.cloudflare.com」和「pete.ns.cloudflare.com」換進去 (你們可能的會不一樣),然後點右邊綠色的「√」就好了。
添加 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 (可選)
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 // 安裝 CyberChimps 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。完成!!