共计 2134 个字符,预计需要花费 6 分钟才能阅读完成。
這篇已經是舊版了,新版:https://www.gebu8f.com/site-manager-6-wordpress/
歷經數週測試與調整,站點管理器 SiteManager v5.0 終於正式釋出!
這不是單純的版本號提升,而是一次從「寫死規定」走向「活的規則」的根本重構。以往你必須手動維護 Nginx 配置、硬寫端口、檔案位置與引入規則;而現在,只要一行指令,一切自動判斷、自動適配。
📌什麼是站點管理器?
站點管理器是一個由 Shell Script 撰寫的輕量工具,專門用於管理 Nginx / OpenResty 網站配置。它能快速完成:
- 新增 / 刪除站點
- 套用 SSL 憑證
- 支援 HTTP/2、HTTP/3 自動啟用
- 動態調整 Nginx 配置,不再硬編碼
- 適配 Debian、CentOS、Alpine 等主流 Linux 系統
🆕5.0 最大的變化:從「寫死」變「活規則」
以往所有 Nginx 配置幾乎是硬編碼:
listen 443 ssl;
這些配置寫死在腳本裡,若遇到不同系統、不同架構、不同版本,很容易報錯。
而現在,5.0 採用全動態架構,透過變數與邏輯判斷,即時產生正確格式,例如:
local conf_file=$(detect_conf_path)/$domain.conf
🧠核心功能亮點
✅ 自動偵測配置路徑
透過 detect_conf_path()
函式,自動從 OpenResty 或 Nginx 主配置中提取 include ... *.conf
位置,並確認該 include 是否在 http {}
區塊中,避免無效引入。
若未偵測到,則會自動插入有效 include
並重載服務,真正做到開箱即用。
✅ 完整相容原 NGX 架構
你的舊有 NGX 架構完全不需更改。
原本寫死在 /etc/nginx/conf.d
或 /usr/local/openresty/nginx/conf/conf.d
中的配置,可無痛升級遷移至 5.0 架構。站點配置將根據目標域名自動產出,無需人工修補。
✅ 測試機制極簡但有效
本版本只使用兩種站點類型做測試驗證:
- 靜態 HTML 測試頁
- PHP 測試頁(可跑 WordPress)
為什麼只測這兩種?
因為 HTML 是最低難度、PHP 是最高難度。只要這兩個能跑起來,其他框架與應用也就無須懷疑。
🔚總結:這不只是一個工具,而是站點部署的邏輯升級
站點管理器 5.0 代表的是:
- ❌ 不再複製貼上配置檔
- ✅ 不再死背 listen 寫法
- ✅ 不再懷疑某一版 Nginx 是否支援某功能
而是讓配置從「死的」轉為「活的」,從手動調整轉為自動判斷,提升站長部署效率至少兩倍以上。
安裝方式
注意:github還未同步
和之前一模一樣
bash <(curl -sL https://gitlab.com/gebu8f/sh/-/raw/main/nginx/install.sh)
GitHub備用版
bash <(curl -sL https://raw.githubusercontent.com/gebu8f8/site_sh/refs/heads/main/install.sh)
之後可用site執行
資助
☕ 如果你也覺得實用,歡迎到 Ko-fi 支持我,幫助我繼續維護更新 💖
Q&A區
Q: 為什麼腳本沒有自動偵測多個 include 目錄?
A: 因為在大多數套件安裝情境中,只會存在一個包含路徑(如 conf.d)。若有多個 include,通常屬於手動修改,建議進階用戶手動整合。
❓ Q:為什麼腳本沒有自動啟用 Nginx 調優參數?
A:為了穩定與兼容性,站點管理器 5.0 預設不啟用任何會導致配置失敗風險的「進階優化設定」。
❗ 若你是使用腳本安裝的最新版 OpenResty 或 Nginx,內建已根據其特性進行調優處理。
原因如下:
- ✅ 腳本能保證自行安裝的 Nginx/OpenResty 為最新版,模組支援完整,因此敢於啟用特定優化選項。
- ⚠️ 但若使用者系統本身已存在自編譯版本或套件安裝版本,版本落後或功能不一致機率極高,直接套用調優參數容易導致 Nginx 啟動失敗。
- 🔒 因此,動態整合時將不自動套用調優選項,以保證安裝即用、升級不壞。
如需自定義調優,可參考官方文檔手動調整 /etc/nginx/nginx.conf
。
❓Q: 為什麼腳本沒自動加入進階 HTTPS / 安全 / 優化設定?
本腳本目的是保證「部署成功」為首要目標,因此只加入最基礎且跨平台兼容性最高的設定。進階功能如 HSTS、Stapling、DH Key、Headers 等需視系統環境而定,建議由高級用戶自行根據需求與環境加入,避免 nginx 啟動失敗或 reload 失效等問題。
❓ Q: 為什麼腳本不幫我調整 PHP、MySQL?
因為穩定性永遠擺第一。
很多人會說「要調整 PHP 的這些參數、MySQL 的這些緩衝、性能配置」等等,但老實說:一但改錯一次,整個服務直接崩潰。而且不同人、不同主機、不同流量、不同記憶體條件下,根本沒有所謂「通用參數」。
所以:
- ✅ 我只幫你調整
upload_max_filesize
、post_max_size
等基本安全不影響穩定的內容 - ⚠️ 其他全部維持預設,你需要自己根據需求調整
- 📘 如果你來問我,我可能會直接給你一篇教學文章,但我不會幫你腳本裡內建調整,這是對你的服務負責,也是對我自己腳本負責
這不是我偷懶,而是「該保守的地方就該保守」。