2026 年在 DigitalOcean 上部署 Ghost 博客完整指南
Ghost 是一个轻量级博客和新闻通讯平台,具有内置的付费会员和订阅系统——非常适合希望获得速度和直接服务器控制权的开发者和写作者。DigitalOcean 提供了一个 Marketplace 一键应用,可以使用预配置的 Nginx、MySQL 和 SSL 安装 Ghost。本指南涵盖了从选择正确的 Droplet 规格、设置您的域名和邮件,到备份和解决常见问题的所有内容。
目录
Ghost 是什么,它与 WordPress 有何区别?
Ghost 是一个用 Node.js 编写并由 MySQL 支持的开源博客和新闻通讯平台。与 WordPress 不同(WordPress 是 PHP + MySQL,采用插件中心架构),Ghost 从一开始就被构建为一个"数字出版平台"。它附带与 Stripe 绑定的会员和付费订阅功能,无需像 MemberPress 或 WooCommerce Subscriptions 这样的第三方插件。Ghost 的管理面板是一个加载速度快的单页应用程序,具有支持代码注入的基于块的编辑器,并通过预编译的 Handlebars 主题呈现前端——自然比被许多插件拖累的系统快得多。在服务器级别,Ghost 通过进程管理器(Ghost-CLI 自动使用 systemd)运行 Node.js 进程,并与 Nginx 反向代理和 MySQL 数据库一起运行。在开始任何工作之前,使用 ghost --version 检查已安装的版本,使用 node -v 检查 Node.js,因为 Ghost 强制执行严格的 Node 版本兼容性。在 DigitalOcean 上选择两者之间的时,请考虑您的内容重点:如果您主要是在构建具有付费会员资格的博客、新闻通讯或媒体网站,Ghost 的内置功能可以让您更快地启动和运行,并需要较少的维护。但是,如果您需要完整的电子商务商店、复杂的页面构建器或许多专门的插件,WordPress 更大的插件生态系统仍然更实用。两者在 DigitalOcean Droplets 上运行得一样好——区别在于底层堆栈和长期维护方法。
- Ghost = Node.js + MySQL,WordPress = PHP + MySQL
- Ghost 本地包含与 Stripe 绑定的会员和付费订阅——无需附加插件
- 管理面板是一个单页应用程序,加载速度快;主题使用 Handlebars 预编译
通过 Marketplace 一键应用部署
让我们意外的一点是:在 DigitalOcean 上安装 Ghost 的最快和最安全的方法是通过 Marketplace 一键应用,它在启动时预配置 Nginx、MySQL、Node.js 和 Ghost-CLI——无需手动编译。首先登录您的 DigitalOcean 控制面板,单击"创建 > Droplets",然后选择 Marketplace 选项卡并搜索"Ghost"。选择官方镜像。接下来,选择您的 Droplet 规格:对于流量适中的初学者博客或个人网站,基本计划,具有 1 GiB RAM / 1 vCPU / 25 GB SSD,每月 $6,就足够了,因为 Ghost 的官方指导建议至少 1 GB 的 RAM。如果您预期有更高的读者量或成员,请升级到 2 GiB RAM / 2 vCPU / 60 GB SSD,每月 $18,以处理构建过程和不断增长的媒体库。选择离您的读者最近的地区;对于泰国受众,sgp1(新加坡)提供最低延迟,blr1(班加罗尔)次之。接下来,添加 SSH 密钥而不是普通密码以获得更好的安全性,然后单击"创建 Droplet"。Droplet 启动后,使用 ssh root@your_droplet_ip 通过 SSH 登录。系统将在首次登录时自动运行设置向导,或者您可以通过在浏览器中直接访问 Droplet 的 IP 来手动触发它。使用 ghost ls 验证 Ghost 已成功安装并且服务正在运行,该命令显示实例名称、状态、URL 和版本。或者,直接使用 systemctl status ghost_yourdomain-com 检查 systemd 服务。Marketplace 镜像不会产生额外的费用,仅超过标准 Droplet 价格,计费是按秒计算的,每个会话最少收费 60 秒。
- Marketplace 镜像不收取额外费用——仅支付标准 Droplet 价格
- 初学者推荐:基本 1 GiB RAM / 1 vCPU / 25 GB SSD,每月 $6
- 随着流量增长,升级到 2 GiB RAM / 2 vCPU / 60 GB SSD,每月 $18
- 对于泰国读者:选择 sgp1(新加坡)或 blr1(班加罗尔)地区
- 使用
ghost ls和systemctl status验证状态
设置域名和邮件
Droplet 准备就绪后,通过在您的域名注册商或 DigitalOcean 网络中创建 DNS A 记录,将您的域名指向 Droplet 的 IP——将您的子域或根域路由到 Droplet 的 IPv4 并等待传播。当 DNS 正确解析时,通过浏览器在 http://droplet-ip 处运行设置向导,或使用服务器端命令 ghost setup,它会提示您输入完整的域名、管理员电子邮件和第一个帐户的管理员密码。要稍后更改 URL(例如,从 http 切换到 https 或更改域名),请使用 ghost config url https://yourdomain.com,然后每次使用 ghost restart 应用新设置。Marketplace Ghost 镜像包括一个脚本,该脚本在向导设置期间通过 ghost setup ssl 自动配置 Let's Encrypt SSL,为您提供免费的 HTTPS,无需手动 certbot 管理。电子邮件是一个经常被忽视的部分:Ghost 需要外部 SMTP 服务用于事务性电子邮件,如成员邀请、密码重置和付费订阅通知。Ghost 推荐 Mailgun,因为它无缝集成到设置向导中,尽管任何标准 SMTP 提供商都可以工作。在 config.production.json 文件中的邮件块中或通过环境变量配置它。电子邮件设置后,通过从"管理设置 > 电子邮件新闻通讯"发送新闻通讯来测试,并使用 ghost log 检查日志。如果您看到 SMTP 身份验证错误,请验证您的域名的 SPF/DKIM 记录,因为配置不正确的记录可能导致电子邮件进入垃圾邮件或被完全拒收。
- 在运行设置之前,创建指向 Droplet IP 的 DNS A 记录
- 运行
ghost setup输入您的域名、管理员电子邮件和密码 - 稍后使用
ghost config url更改 URL,然后使用ghost restart
自定义主题和基本 SEO
Ghost 附带 Casper 主题,它已经针对速度和 SEO 基础进行了优化,例如 JSON-LD 结构化数据、Open Graph 标签和位于 /sitemap.xml 的自动生成的 sitemap.xml——无需像 WordPress 上那样的插件。要使用自定义主题,通过"管理 > 设置 > 设计 > 更改主题 > 上传主题"以与 Ghost 主题规格匹配的 .zip 文件形式上传它。在上传自定义主题之前,通过在主题目录中运行 gscan . 来使用官方 gscan 代码检查工具验证它,以在部署前捕获错误和警告,防止上传后页面损坏。在帖子级别,Ghost 的编辑器包括元标题、元描述和社交预览图像的单独字段——让您无需插件依赖即可调整您的 Google 摘要。您通过在设置期间使用 ghost config url 为整个网站设置规范 URL,它自动适用于每个页面的规范标签。对于代码注入(如 Google Search Console 验证标签或跟踪脚本),请转到"管理 > 设置 > 代码注入"并粘贴到"网站页眉"或"网站页脚",无需直接编辑主题。在修改服务器上的任何主题或配置后,运行 ghost restart 将更改加载到 Node 进程中。从第一天开始连接 Google Search Console,以便 Ghost 的自动生成的 sitemap.xml 更快地被抓取和索引。
- Casper 主题包括结构化数据、Open Graph 和自动生成的 sitemap.xml
- 在上传到生产环境之前,使用
gscan .验证自定义主题 - 在编辑器中直接为每个帖子设置元标题、描述和社交图像
备份 Ghost 内容
用户经常问到的一点是:Ghost-CLI 有一个内置的备份命令:ghost backup 创建一个包含所有内容(帖子、作者、标签、成员、设置)的 JSON 导出的 zip 文件(在实例目录中)——适合快速的内容级备份,但不包括 content/images 中的所有图像和媒体文件。对于覆盖数据库和所有媒体的完整备份,使用 mysqldump -u root -p ghost_prod > ghost_backup.sql 单独转储 MySQL,并使用 tar -czvf content_backup.tar.gz content/ 存档整个内容目录,其中包括图像、主题、数据和设置在一个文件中。设置一个 cron 作业定期运行两个命令(例如,每晚)并立即将备份文件复制出 Droplet,因为在同一磁盘上存储它们会失去目的——如果 Droplet 失败,您的备份也会失败。一个实用的选项是将备份转移到 DigitalOcean Spaces,这是一个兼容 S3 的对象存储服务,起价 $5/月,带有内置 CDN——非常适合异地备份存储,无需管理单独的存储服务器。另一个要添加的层是 Droplet Snapshots,价格为 $0.06/GiB/月,它备份整个服务器(OS、配置、所有文件),并在主要更新或配置更改前充当安全网。定期安排快照(例如,每周),并至少测试一次恢复以确认需要时您的恢复过程有效。
ghost backup保存 JSON 内容,但不包括所有媒体文件- 完整备份:
mysqldump数据库 +tar -czvf内容目录 - 将备份存储在异地的 DigitalOcean Spaces($5/月,带有 CDN),而不是同一磁盘上
- Droplet Snapshots($0.06/GiB/月)在主要更新之前备份整个服务器
何时使用此功能(真实用例)
在 DigitalOcean 上使用 Ghost 最适合于内容是您业务核心的情况,而不是电子商务或复杂的营销网站。理想的用例包括独立作家或创作者通过 Stripe 开设付费新闻通讯——Ghost 的本地会员系统消除了外部附加组件的需要。另一个适合的是优先考虑速度和低维护而不是插件灵活性的公司博客或 SaaS 文档网站,因为 Ghost 避免了随着网站增长而累积的沉重 WordPress 安装中不断增加的膨胀。媒体公司或新闻组织受益于内置的 Content API 用于无头部署,让他们向单独的前端应用程序(JAMstack)提供内容。相反,Ghost 不太适合复杂的电子商务网站、社区论坛或需要许多专门插件的平台——WordPress 更大的插件生态系统对那些情况仍然服务得更好。团队也很重要:如果您的团队可以自己管理 Node.js 基础设施并想要直接的服务器控制,Ghost on Droplet 提供了比托管主机更多的灵活性。但您完全负责更新、安全和备份。有关比较详细信息,请参阅单独的 WordPress on Droplet 指南。
- 理想:以 Stripe 为基础的付费会员资格作为核心模式的新闻通讯/博客
- 理想:优先考虑速度和低维护的公司博客/SaaS 文档
- 理想:使用 Content API 用于无头部署的媒体公司
- 不适合:复杂的电子商务、论坛或需要许多专门插件的网站
常见错误和解决方案
值得强调的是——最常见的问题是选择 RAM 不足的 Droplet。Ghost 根据官方指导需要至少 1 GB;使用更少会导致安装或更新挂起。通过调整 Droplet 大小或临时添加交换文件来支持高内存操作(如 ghost update 等更新)来解决。另一个常见问题:SSL 续期失败,因为云防火墙或 ufw 阻止端口 80/443,防止 Let's Encrypt 验证。使用 ufw status 检查并在续期前打开所需的端口。第三个错误:忘记在更改域名或切换到 https 后运行 ghost config url,这会破坏 CSS、JS 和图像链接。解决方案:使用正确的 URL 运行配置命令,然后每次 ghost restart。成员注册和通知电子邮件也经常静默失败——通常由于 SMTP 设置不完整——在网页上没有明显的错误。使用 ghost log 检查日志以查看实际的邮件传输错误。最后,最容易防止但最具破坏性的错误:在备份前运行 ghost update。如果新版本与您的主题或配置冲突,没有最近的备份恢复会困难得多。在每次更新前使用 ghost doctor 检查系统健康状况。
- RAM 低于 1 GB 会导致安装/更新挂起——调整 Droplet 大小或临时添加交换
- 如果防火墙阻止端口 80/443,SSL 续期失败——使用
ufw status检查 - 在域名更改后忘记
ghost config url会破坏资产链接 - 成员注册或通知电子邮件由于 SMTP 设置不完整而静默失败——检查
ghost log
最佳实践
第一个实践:一致但谨慎地更新 Ghost。在每次 ghost update 之前,运行 ghost backup,以便在新版本与您的主题或配置的兼容性破裂时有一个清晰的回滚点。对于服务器安全,打开 ufw 只允许必要的端口:22(SSH)、80 和 443。禁用密码身份验证,仅使用 SSH 密钥,然后启用 DigitalOcean Cloud Firewall 作为额外的网络级防御,无需额外费用。对于数据连续性,与异地内容备份到 Spaces 一起(见上面的备份部分)设置 Droplet Snapshots 定期计划,为您提供服务器和数据级别的恢复选项。对于监控,启用免费 DigitalOcean Monitoring,每个帐户有一个免费 Uptime Check——足以跟踪基本 Ghost 可用性。与异地内容备份到 Spaces 一起启用自动化 Droplet Snapshots 定期计划。对于主题工作,在部署自定义主题到生产环境之前每次都运行 gscan .,以尽早捕获错误。当流量开始压过您当前的 Droplet 时,逐步调整大小而不是等待缓慢伤害读者——有关比较等级规格,请参阅单独的 Droplets 评测指南。最后,将邮件设置和自定义主题等关键配置单独保存在版本控制中,以便您可以快速重新部署或迁移 Droplets,而无需从头开始重新配置所有内容。
- 在
ghost update之前始终运行ghost backup,无一例外 - 打开 ufw 仅限端口 22/80/443 + 禁用密码身份验证 + 启用 DigitalOcean Cloud Firewall(免费)
- 设置自动化 Droplet Snapshots 与异地内容备份到 Spaces
- 启用免费 DigitalOcean Monitoring 与 Uptime Check 以跟踪基本站点可用性
- 在每次自定义主题部署前运行
gscan .,并在流量达到上限前主动调整 Droplet 大小
常见问题(FAQ)
ghost backup,以便在新版本与您的主题或配置冲突时有一个回滚点。ghost backup 和 mysqldump 备份内容。