幾分鐘內在 VPS 上部署 Ghost
在完全由你掌控的 VPS 上啟動自主託管的 Ghost 刊物。Ghost-CLI 會在一次引導式流程中完成 Node.js、MySQL、NGINX 反向代理與 Let’s Encrypt SSL 的配置 — 無需管理型方案,也不會抽取你的收入分成。
在 VPS 上自主託管 Ghost 可以做到什麼
Ghost 是一套專為出版與電子報而設的開源 headless CMS。在 VPS 上運行 Ghost,你就擁有整個技術堆疊 — 編輯器、會員制與電郵發送 — 而不必為管理型託管支付月費。
經營自己的刊物與電子報
保留 100% 訂閱收入
以 root 存取權限掌控整個技術堆疊
以 Mailgun 發送電子報
發佈快速的自訂主題
按自己的節奏擴充
為 Ghost 選擇 VPS 方案
Ghost、MySQL 與 NGINX 在閒置狀態下約佔用 1.2 GB,因此 RAM 才是關鍵規格,而 Start VPS 是能夠從容應付的最低配置。個人網誌或小型電子報請從 Start VPS 開始;當它成為訂閱者不斷增長的活躍刊物時,再升級至 Medium VPS。所有方案均包含一個專用 IPv4 地址、每週免費備份、KVM,以及完整的 root/SSH 存取權限。RAM、硬碟及其他規格日後均可擴充。Start 方案有一項注意事項:對外 SMTP 埠預設為封鎖狀態 — 在配置電子報之前,請開立支援工單以啟用電郵功能(可能需要 KYC 審核)。
提升您的 VPS 伺服器資源
看看如何變更您的 VPS 設定。您可以購買額外的磁碟空間、提升 CPU 效能、增加記憶體,以及利用額外的服務,而無需轉換新方案。
如何在 VPS 上部署 Ghost
在全新的 Ubuntu 24.04 伺服器上完整安裝 Ghost 6.x 約需 15 分鐘。請先將 DNS A 記錄指向你的 VPS IP — Let’s Encrypt 需要 DNS 能夠解析,才能簽發你的 SSL 證書。安全強化與電郵設定會列在最後的後續步驟中。以下步驟涵蓋核心安裝流程;如需附有每一條指令與截圖的完整教學,請參閱我們網誌上的 Ghost VPS 安裝完整指南。
Step 01 — 建立一個非 root 的 sudo 用戶
Ghost-CLI 不允許以 root 身分運行。不要把用戶命名為 ghost — 這會與 Ghost-CLI 在安裝過程中建立的系統用戶衝突。
adduser ghostadminusermod -aG sudo ghostadminStep 02 — 安裝依賴套件並開放防火牆
安裝 NGINX、MySQL 以及 Node.js 所需的軟件包,然後開放網絡流量:
su - ghostadminsudo apt-get update && sudo apt-get upgrade -ysudo apt-get install -y nginx mysql-server ca-certificates curl gnupgsudo ufw allow 'Nginx Full'sudo ufw allow OpenSSHsudo ufw enable把 MySQL 的 root 用戶改為密碼驗證,這是 Ghost 的要求:
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'your_secure_password'; FLUSH PRIVILEGES;"Step 03 — 安裝 Node.js 22 LTS
Ghost 6.x 只支援 Node.js v22。請從 NodeSource 安裝:
sudo mkdir -p /etc/apt/keyringscurl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpgecho "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.listsudo apt-get update && sudo apt-get install -y nodejsStep 04 — 安裝 Ghost-CLI
以 root 身分全域安裝官方 CLI 工具,然後切換回你的用戶:
exitnpm install ghost-cli@latest -gsu - ghostadminStep 05 — 建立安裝目錄並運行安裝程式
Ghost 位於 /var/www/ghost,並以你的用戶作為擁有者:
sudo mkdir -p /var/www/ghostsudo chown ghostadmin:ghostadmin /var/www/ghostsudo chmod 775 /var/www/ghostcd /var/www/ghostghost install在安裝精靈中填入你的網誌網址(完整的 https:// 域名)、MySQL 連線資訊,並在 NGINX、SSL 與 systemd 的提問中選擇 yes。Ghost-CLI 會配置反向代理、申請 Let’s Encrypt 證書,並以 systemd 服務啟動 Ghost。
Step 06 — 正式上線並確認連接埠
你的管理後台現在位於 https://yourdomain.com/ghost/。80 與 443 埠透過 NGINX 對外開放;Ghost(2368)與 MySQL(3306)仍綁定在 localhost,因此無需額外的防火牆規則。打開管理後台網址即可建立帳戶並發佈第一篇文章。
後續步驟(正式上線前):強化 SSH、連接 Mailgun 以發送電子報、設定監控,並執行 ghost backup,然後才進行每次的 ghost update — 如果更新出問題,可用 ghost update --rollback 回滾。
常見故障排解
- Ghost-CLI 不允許以 root 身分運行。這是刻意的設計 — Ghost-CLI 不會在 root 帳戶下安裝。請先建立一個非 root 的 sudo 用戶,並以該用戶執行安裝。也不要把該用戶命名為 ghost,因為它會與 Ghost-CLI 在安裝過程中建立的系統用戶衝突。
- 安裝過程中略過了 SSL 步驟。如果 Ghost-CLI 顯示 “SSL certs cannot be generated for IP addresses, skipping”,說明你是針對 IP 而非域名執行安裝。請在安裝前把 DNS A 記錄指向你的 VPS,並在網誌網址欄位填入完整的 https:// 域名 — Let’s Encrypt 需要 DNS 能夠解析才能簽發證書。
- Ghost 無法連接 MySQL。在 Ubuntu 上,MySQL 8 的 root 用戶預設使用基於 socket 的驗證,Ghost 無法使用這種方式。請改為使用 mysql_native_password 的密碼驗證,並在安裝精靈中填入該憑證。
- 電子報無法發送。Start 方案預設封鎖對外 SMTP,因此在解除封鎖之前 Mailgun 的投遞都會失敗。請開立支援工單以解除 SMTP 埠的封鎖(可能需要 KYC 審核),然後在 Settings → Newsletters 中加入你的 Mailgun API 金鑰。
- 因 Node.js 版本錯誤導致安裝失敗。Ghost 6.x 只支援 Node.js v22 LTS,在 Node 18 或 20 上會拒絕安裝。請從 NodeSource 安裝 v22,並用 node --version 確認,然後再執行 ghost install。另請注意必須使用 MySQL 8 — 生產環境不支援 MariaDB。