以自訂配置新增網站
ServBay 提供了彈性極高的網站新增方式。除了標準、由 ServBay 自動管理配置的模式之外,亦支援「自訂配置」功能。該模式讓開發者能直接撰寫和維護特定網站的 Web 伺服器(Nginx、Caddy、Apache)設定檔,擁有最大化的自訂彈性與主控權,尤其適合需要精細調教、非標準設定或進階功能的開發場景。
自訂配置的意義
選擇自訂配置代表:
- 完全掌控: 您能直接編輯該網站對應的伺服器設定片段(如 Nginx 的
server
區塊、Apache 的VirtualHost
區塊,或 Caddy 的站點定義)。 - 進階功能: 可實作標準模式較難實現的設定,如複雜的重寫規則、特別代理設定、自訂日誌格式、特殊安全標頭等。
- 特殊場景: 適用於需要模擬特定生產環境、整合特殊模組或深度除錯的情境。
不過,這同時代表您必須自行負責設定的正確性與安全性,包括 SSL 憑證的管理。
新增自訂配置網站步驟
- 進入網站: 在 ServBay 左側選單中點選
Websites
。 - 新增網站: 點選網站列表上方的
+
(加號)按鈕。 - 填寫基本資訊:
- Name: 為您的網站命名一個容易識別的名稱(例如:
My Custom Project
)。 - Domain: 輸入您希望本地存取的網域名稱(例如:
myproject.servbay.demo
)。
- Name: 為您的網站命名一個容易識別的名稱(例如:
- 選擇 Web 伺服器: 從
Web Server
下拉選單中選取您希望使用的伺服器(Nginx、Caddy 或 Apache)。這個選擇非常重要,將決定後續提供的配置模板型態,以及該網站由哪套伺服器軟體提供服務。 - 啟用自訂配置: 勾選
Custom Configuration
勾選框。 - 檢視並編輯模板: 勾選後,下方文字區域會自動填入一份根據您所選 Web 伺服器對應的基礎設定模板。這是起點,您可以(也通常需要)在此基礎上進行調整。
理解與修改配置模板
ServBay 會根據您選取的 Web 伺服器(Nginx、Caddy、Apache)提供對應的配置範本。您需依照實際專案需求修訂這些設定。
1. Nginx 自訂配置
若您選擇 Nginx,ServBay 將提供一個基本的 server
區塊模板。
模板結構與關鍵指令:
# 監聽連接埠與協議
listen 443 ssl; # HTTPS
# 綁定網域名稱
server_name myproject.servbay.demo;
# 網站根目錄(請確保此路徑存在)
root /Applications/ServBay/www/myproject.servbay.demo;
# 預設索引檔案
index index.php index.html index.htm;
# SSL/TLS 協議與加密套件(範例)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_timeout 1d;
ssl_session_cache shared:ServBay:10m;
ssl_session_tickets off;
# SSL 憑證路徑(如啟用 HTTPS,必須手動指定)
# 【重要】請確保憑證文件存在且路徑正確
ssl_certificate /Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.crt;
ssl_certificate_key /Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.key;
# 處理 PHP 請求(以 PHP 8.3 為例,請依實際調整)
set $php_version '8.3';
include enable-php-fpm-pathinfo.conf;
# 其他配置,如 location 區塊、重寫規則等
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# 存取與錯誤日誌路徑(可選)
# access_log /Applications/ServBay/logs/nginx/myproject.servbay.demo-access.log;
# error_log /Applications/ServBay/logs/nginx/myproject.servbay.demo-error.log;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
修改重點:
- 確認
server_name
與所設網域一致。 - 設定正確的
root
目錄,對應您的專案檔案。 - 若需使用 HTTPS,請取消註解或新增
listen 443 ssl;
,並務必指定正確的ssl_certificate
及ssl_certificate_key
路徑。 - 依需求額外加入其他 location 區塊、重寫規則、代理設定等。
2. Caddy 自訂配置
若選擇 Caddy,ServBay 會提供符合 Caddyfile 語法的站點範本。
模板結構與關鍵指令:
encode zstd gzip
import set-log myproject.servbay.demo # 日誌檔名
import canonical-path
# 網站根目錄(請確保此路徑存在)
root * /Applications/ServBay/www/myproject.servbay.demo
# 處理 PHP 請求
route {
import php-rewrite-default 8.3 # PHP 版本 8.3
}
# TLS/SSL 設定
# 請指定憑證路徑
# tls /Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.crt /Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.key
# 啟用檔案伺服器
file_server
# 其他指令,如 reverse_proxy、rewrite、header 等
# ...
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
修改重點:
- 確保最上層網域
myproject.servbay.demo
設定正確。 - 設定正確的
root
指令指向您的專案資料夾。 - SSL/TLS: Caddy 預設會試圖自動為網域申請與管理 HTTPS 憑證。對於
.servbay.demo
等在地開發網域,這通常不可行。若需 HTTPS,強烈建議使用tls
指令手動指定您已有的憑證與私鑰檔案路徑。請確認檔案存在且路徑正確。 - 依需求增加其他 Caddy 指令。
3. Apache 自訂配置
若選擇 Apache,ServBay 將提供 <VirtualHost>
區塊模板。
模板結構與關鍵指令:
ServerName myproject.servbay.demo
DocumentRoot "/Applications/ServBay/www/myproject.servbay.demo"
# 啟用 SSL 引擎
SSLEngine on
# SSL 憑證路徑
# 【重要】請確保憑證文件存在且路徑正確
SSLCertificateFile "/Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.crt"
SSLCertificateKeyFile "/Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.key"
# 目錄權限設定
<Directory "/Applications/ServBay/www/myproject.servbay.demo">
DirectoryIndex index.php index.html index.htm
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# PHP-FPM 設定(PHP 8.3 範例)
Define PHP_VERSION 8.3
<FilesMatch \.php$>
SetHandler "proxy:unix:/Applications/ServBay/tmp/php-cgi-${PHP_VERSION}.sock|fcgi://localhost"
</FilesMatch>
# 錯誤與存取日誌(可選)
ErrorLog "/Applications/ServBay/logs/apache/myproject.servbay.demo-ssl-error_log"
CustomLog "/Applications/ServBay/logs/apache/myproject.servbay.demo-ssl-access_log" common
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
修改重點:
- 確認
ServerName
與您的網域一致。 - 設定正確的
DocumentRoot
指向專案資料夾。 - 正確設定
<Directory>
權限與選項。 - 依實際需求新增其他 Apache 指令,例如
RewriteEngine
、ProxyPass
等。
SSL 憑證管理【重要】
當您採用自訂配置模式時,ServBay 不會 自動為您產生 SSL 憑證(例如自動建立 ServBay CA 憑證或透過 ACME 協議申請 Let's Encrypt 憑證)。
- 您必須自行負責取得或產生 SSL 憑證,並將檔案放在伺服器可存取的位置。
- 可用 OpenSSL 手動產生自簽名憑證,或利用 ServBay 提供的 CA(ServBay User CA 或 ServBay Public CA)簽發開發用憑證。
- 在 Nginx、Caddy 或 Apache 的自訂配置中,必須正確指定
ssl_certificate
/ssl_certificate_key
(Nginx)、tls
(Caddy)、或SSLCertificateFile
/SSLCertificateKeyFile
(Apache)等指令,路徑對應到準備好的憑證與私鑰檔案。 - 若設定檔內指定了 SSL 相關指令,但憑證檔案不存在或路徑錯誤,Web 伺服器將無法啟動或載入該網站設定,導致無法正常存取,並可能在 ServBay 介面或伺服器日誌中看到錯誤訊息。
詳情請參考 ServBay 關於 SSL 憑證管理 的相關文件,了解如何為本地開發環境產生憑證與進行管理。
Web 伺服器綁定
DANGER
一個關鍵重點是,當您為網站選擇了特定 Web 伺服器(如 Nginx)並以自訂配置儲存後,該網站配置就與 Nginx 綁定了。
- 這代表唯有當 ServBay 當前啟動的 Web 伺服器套件為 Nginx 時,該網站才能正確被存取。
- 若您於 ServBay 的
服務
-預設 Web 伺服器
區段切換至 Apache 或 Caddy,那麼此自訂 Nginx 設定的網站將無法使用,因為對應的 Nginx 配置並未載入。 - 反之,為 Caddy 或 Apache 建立的自訂配置網站,也僅於各自對應的伺服器套件運行時可訪問。
儲存與生效
完成所有設定修改後,請點擊右下角的 Save
鈕。ServBay 會保存您的自訂配置,並嘗試自動重載對應 Web 伺服器,使設定立即生效。若配置有語法錯誤,儲存將可能失敗,或伺服器重載不成功。請檢查 ServBay 的通知訊息或伺服器錯誤日誌(通常位於 /Applications/ServBay/logs/
下相應子目錄)以追蹤問題。
小結
以自訂配置方式新增網站,為 ServBay 用戶帶來最大的彈性,讓開發者能精確掌控每個站點的伺服器行為。但前提是必須具備 Web 伺服器設定的專業知識,並承擔設定正確性、安全性、與 SSL 憑證管理責任。理解模板架構、SSL 要求與伺服器綁定機制,是善用此功能的關鍵。