利用 WordOps 快速建立 WordPress
前言
在 Google Cloud Platform 或其他的 VPS 上想擁有快速架設網站的方式,
可以選擇 WordOps,其架構是參考 EasyEngine 開發出來的,而且可以快速產生多種 WordPress 架構,
再加上免費開源,所以很推薦使用。
WordOps
功能
- 簡單安裝:一鍵式自動安裝,支持從 EasyEngine v3 遷移
- 快速建置:快速自動化建置 WordPress,Nginx,PHP,MySQL 和 Redis
- 自定義 Nginx 架構:Nginx 1.18.0-TLS v1.3 Cloudflare HTTP / 2 HPACK 和支持 Brotli
- 最新版本:PHP 7.2、7.3和7.4,MariaDB 10.5 和 Redis 6.0
- 安全:透過嚴格的 Nginx 位置指令來加強 WordPress 安全性
- 強大:具備支持多個後端暫存的 Nginx 設定
- SSL:我們使用 DNS API 加密 SSL 證書來支持主網域,子網域和萬用字元網域
- 新式的:強大的 ciphers_suite,支持最新的 TLS 協議和 HSTS ( ssllabs 的 A+ 級 )
- 監控:使用 ngx_vts_module 即時監控 Nginx 虛擬主機流量,以及使用 Netdata 監控伺服器
- 用戶友好介面:WordOps 儀表板,內建伺服器狀態/監控和工具(展示)
環境需求
最低需求
WordOps 非常輕巧,不需要佔用大量資源,可以安裝在 Raspberry PI 等低階設備上。
最低需求:
- 約 100MB 的儲存空間
- 512MB 記憶體
推薦需求
但是,如果要在正式環境中使用 WordOps,像是某些服務( 例如 MySQL 或 Redis )可能需要更多資源,而在沒有足夠資源的情況下執行 WordOps stacks 可能會影響網站性能。而您的網站流量也會大幅度決定佔用資源的程度。
推薦用於正式環境的硬體需求:
- 多核心 CPU
- 20GB SSD 儲存空間
- 2GB 記憶體
虛擬化
支持以下虛擬化平台:
- VMware
- XEN
- OpenVZ
- KVM
- Hyper-V
- LXC / LXD
WordOps 還與在 Windows Linux 子系統(WSL)上執行的 Ubuntu 相容。
軟體需求
作業系統
支持以下作業系統:
系統 | 版本 | 架構 |
---|---|---|
Ubuntu | 20.04 LTS (focal) | x86_64 |
18.04 LTS (bionic) | x86_64 | |
16.04 LTS (xenial) | x86_64 | |
Debian | 9 (stretch) | x86_64 |
10 (buster) | x86_64 | |
Raspbian | 9 (stretch) | armv7l |
10 (buster) | armv7l |
連接埠
服務 | 連接埠 | 入 | 出 | 備註 |
---|---|---|---|---|
SSH | 22 | ✓ | ✓ | SSH 預設或自定連接埠 |
HTTP | 80 | ✓ | ✓ | Nginx 在連接埠 80 上監聽 |
HTTPS | 443 | ✓ | ✓ | Nginx 在連接埠 443 上監聽 |
WordOps 後端 | 22222 | ✓ | ✓ | WordOps 後端在連接埠 22222 上可用,並受密碼保護 |
GnuPG | 1137 | ✓ | 導入 APT 儲存庫必需的 GPG 密鑰 |
安裝
官方提供了一個安裝腳本,可以在設置 WordOps 前安裝所需的依賴項目,可以使用以下指令安裝
wget -qO wo wops.cc && sudo bash wo
安裝腳本執行哪些步驟?
- 安裝 WordOps 依賴項目
- 啟用自動安全更新升級
- 啟用 NTP 世界時間同步
- 檢測以前的 EasyEngine 或 WordOps 安裝是否存在
- 將現有網站站點導入 WordOps
- 安裝 WP-CLI
- 安裝 Acme.sh
- 安裝 Wordops
等待一會時間,會出現要求輸入名稱、信箱,輸入完後會顯示帳號密碼相關資訊,記錄下來 WordOps 後端需要用到。
安裝後的步驟
啟用 bash_completion
要啟用 WordOps 自動完成指令功能,請在安裝 WordOps 後執行以下指令
source /etc/bash_completion.d/wo_auto.rc
為 sudo wo 建立別名
如果希望能夠以非 root 用戶身份直接使用 wo 該指令,則可以新增 bash 別名自動以 sudo 新增在 wo 指令前面。
使用以下指令新增別名
echo -e "alias wo='sudo -E wo'" >> $HOME/.bashrc
然後用
source $HOME/.bashrc
完成建立
安裝 WordOps stacks ( 可選 )
安裝 WordOps 主要 stacks,想選擇性安裝跳過此步驟
wo stack install
以下是輸入上述指令後安裝的 WordOps 套件列表
套件 | 類別 | 描述 |
---|---|---|
Nginx | APT package | WordOps web server |
PHP 7.4 | APT package | PHP7.4-FPM |
MariaDB 10.5 | APT package | 開源版本 MySQL |
WP-CLI | Binary | The WordPress command-line tool |
Composer | Binary | PHP packages manager |
MySQLTuner | Binary | Command-line tool to tune MySQL |
Fail2ban | APT package | Authentication bruteforce protection |
phpMyAdmin | Web App | MySQL server web interface |
Adminer | Web App | lightweight phpMyAdmin alternative |
OpcacheGUI | Web App | web interface for Opcache monitoring |
Netdata | Binary | Monitoring suite |
Anemometer | Web App | MySQL Slow Query Monitor |
WordOps dashboard | Web App | Bootstrap template for WordOps backend |
eXtplorer | Web App | Web File manager |
cheat.sh | Binary | Command-line Linux cheatsheet |
Sendmail | APT package | Sendmail MTA |
WordOps stacks 指令用法
管理伺服器 stack 用法
wo stack (command) [options]
可用 command 列表
command | 描述 |
---|---|
install | 安裝 WordOps stacks |
upgrade | 升級 WordOps stack |
migrate | 升級 MariaDB stack |
remove | 移除套鍵 |
purge | 移除並清除套件 |
reload | 重新載入 WordOps stack |
restart | 重新執行 WordOps stack |
stop | 暫停 WordOps stack |
start | 開啟 WordOps stack |
伺服器 command 用法,重啟 WordOps 服務
wo stack restart
可用 options 列表
options | 類型 | 描述 |
---|---|---|
--web | Group | Nginx, PHP, MySQL, WP-CLI |
--admin | Group | phpMyAdmin, Adminer, Dashboard, Netdata, MySQLTuner … |
--utils | Group | OpcacheGUI, Webgrind, Anemometer |
--nginx | APT package | nginx stack |
--php | APT package | PHP7.2-FPM stack |
--php73 | APT package | PHP7.3-FPM stack |
--php74 | APT package | PHP7.4-FPM stack |
--mysql | APT package | MariaDB stack |
--redis | APT package | Redis stack |
--wpcli | Binary | WP-CLI : WordPress CLI |
--phpmyadmin | Web App | phpMyAdmin : Web interface for MySQL |
--composer | Binary | Composer : PHP dependencies manager |
--netdata | Binary | Netdata : Real-time monitoring suite |
--dashboard | Web App | WordOps dashboard |
--extplorer | Web App | eXtplorer Filemanager |
--adminer | Web App | adminer (phpmyadmin alternative) |
--fail2ban | APT package | Fail2ban : Bruteforce protection |
--phpredisadmin | Web App | phpredisadmin : Web interface for Redis |
--proftpd | APT package | proftpd stack : FTP server |
--mysqltuner | Binary | MySQLTuner stack : MySQL tuning tool |
--ufw | APT package | UFW : Firewall |
--sendmail | APT package | Sendmail MTA |
--ngxblocker | Binary | Ultimate Nginx bad bots blocker |
--nanorc | Binary | Nano editor syntax highlighting |
套件安裝用法
wo stack install [options]
如果沒有 options,將會安裝 WordOps 主要 stacks
基本網站安裝方式
wo stack install --web
將安裝 Nginx、PHP 7.4、MariaDB
管理工具安裝方式
wo stack install --admin
將安裝內建 WordOps-Dashboard,PHPmyAdmin,Adminer,OpcacheGUI 等工具的 WordOps 後端
安裝管理工具後,可以在 http://YOUR.SERVER.IP:22222 操作
WordOps 套件升級
用法
wo stack upgrade [options]
options | 描述 |
---|---|
--all | 升級所有套件 |
--web | 升級網站套件 |
--admin | 升級管理工具 |
--nginx | 升級 Nginx |
--php | 升級 PHP 7.2 |
--php73 | 升級 PHP 7.3 |
--php74 | 升級 PHP 7.4 |
--mysql | 升級 MariaDB |
--wpcli | 升級 WPCLI |
--redis | 升級 Redis |
--netdata | 升級 Netdata |
--dashboard | 升級 WordOps 儀表板 |
--composer | 升級 Composer |
--phpmyadmin | 升級 phpMyAdmin |
--adminer | 升級 Adminer |
--no-prompt | 無需任何提示直接升級套件 |
--force | 強制升級套件不顯示任何提示 |
wo stack upgrade
以上指令會新增套件儲存庫,並升級套件且針對主套件,從目前 WordOps 版本中包含的配置模版來更新及優化配置 ( 尤其是針對 MariaDB 和 Redis )
使用以下指令,只會從目前的 MariaDB 儲存庫更新套件,而不會在主要版本 ( 10.1 -> 10.3 ) 之間升級。
wo stack upgrade
要升級 MariaDB,請使用以下指令
wo stack migrate --mariadb
WordOps 套件刪除
用法 ( 不刪除 APT 套件包的配置或數據 )
wo stack remove <stack> [options]
options | 描述 |
---|---|
--all | 刪除所有套件 |
--force | 強制刪除不提示 |
詳細 WordOps stacks 指令,請閱讀官方 WordOps stacks 說明
一鍵快速安裝 WordPress
官方提供了多種 WordPress 架構安裝方式,透過以下指令即可快速完成安裝
WordPress site
wo site create site.tld --wp
以下指令為進階 WordPress 安裝,對 WordPress 有一定程度的了解再進行
WordPress site + Nginx fastcgi_cache
wo site create site.tld --wpfc
WordPress site + Redis cache
wo site create site.tld --wpredis
WordPress site + WP-Super-cache
wo site create site.tld --wpsc
WordPress site + WP-Rocket cache
wo site create site.tld --wprocket
WordPress site + Cache enabler
wo site create site.tld --wpce
Enable Ultimate Nginx bad blocker on new site
wo site create site.tld --ngxblocker
site.tld 改成你的網域,DNS 要指向伺服器主機 IP 才能從網域名稱解析到主機
附加功能
WordOps 支援 Let’s Encrypt SSL 憑證加密
利用以下指令在一鍵安裝 WordPress 時也可一同向 Let’s Encrypt 申請證書
wo site create site.tld --wp --letsencrypt
site.tld 改成你的網域
萬用字元網域證書
可以透過此方式申請主網域 + 子網域萬用字元憑證 ( 萬用字元憑證 WiKi )
可以透過 Cloudflare DNS 來向 Let’s Encrypt 申請憑證,Cloudflare DNS 申請及 DNS 設定在此不詳述
照以下步驟執行
- 取得 Cloudflare API Key
- 使用 acme.sh 變數設置憑證
在使用 DNS API 發行第一個 SSL 憑證之前,必須使用以下指令
export CF_Key="Cloudflare Global API Key"
export CF_Email="Cloudflare 的帳戶 Email"
設置好後使用以下指令建立萬用字元憑證
wo site create site.tld --wp --letsencrypt=wildcard --dns=dns_cf
site.tld 改成你的網域
維護
使用以下指令可以立即更新 apt-cache 並升級套件
wo maintenance
WordOps 版本更新
使用以下指令將 WordOps 更新到可用的最新版本
wo update
結尾
WordOps 雖然好用,但還是有遇到過在更新上發生一些問題,所以記得在已經正式上線的伺服器上如果要作任何更新以及刪除的動作前,請先利用主機的快照備份一下副本以防萬一
喜歡這篇內容的話,可以幫我註冊 Likecoin 並在文章下方幫我按五下拍手,對我有很大的鼓勵喔!!
原文連結津集藏