---
title: "用 Ghost 搭建自己的博客和电子报：域名、邮件、会员与备份"
description: "在 Zenavo 上用 Ghost 模板部署博客，绑定 HTTPS 域名，创建管理员，配置发信让会员注册和电子报正常工作，再做好 MySQL 和内容目录的备份。"
date: 2026-11-12
language: zh-CN
url: https://zenavo.app/zh-CN/blog/self-host-ghost
---

# 用 Ghost 搭建自己的博客和电子报：域名、邮件、会员与备份

[Ghost](https://ghost.org) 是一个开源的发布平台：写文章、做会员订阅、发电子报都在同一个后台完成，编辑器干净，自带的主题对搜索引擎友好。如果你想要一个属于自己的博客，又不想维护 WordPress 的插件，Ghost 是不错的选择。

这篇文章用 Zenavo 的 Ghost 模板，把 Ghost 和 MySQL 部署到你租用或自有的服务器上，然后配置域名、发信和备份。

## 部署前准备

- 一台已[连接到 Zenavo](https://docs.zenavo.app/zh-CN/servers/add-a-server) 的 Linux 服务器。模板标注约 1 GB 内存，还要给 MySQL 留出余量。
- 一个给博客用的域名，例如 `blog.example.com`。
- 一个发信服务的 SMTP 账号（后面会用到）。会员注册、登录链接和员工邀请都靠邮件。

## 从模板部署

打开 [Ghost 模板](https://zenavo.app/deploy?template=ghost)，部署前会要求填写 **站点网址**，即读者访问博客的完整地址，例如 `https://blog.example.com`。模板会创建两个服务：

| 服务 | 内容 |
|---|---|
| mysql | MySQL 8.4，数据卷 `/var/lib/mysql`，root 密码自动生成 |
| ghost | `ghost:5-alpine`，HTTP 端口 `2368`，内容目录 `/var/lib/ghost/content`（图片、主题都在这里） |

站点网址会写入 ghost 服务的 `url` 变量。Ghost 用它生成所有链接，所以它必须和你最终使用的域名完全一致，包括 `https://`。

## 绑定域名，创建管理员

在 ghost 服务的 **网络** 页为 `2368` 端口绑定 **同一个** 域名，在 DNS 添加指向服务器的 A 记录，等待 HTTPS 生效（见[域名文档](https://docs.zenavo.app/zh-CN/networking/domains)）。

打开 `https://blog.example.com/ghost`，按提示创建站点和第一个管理员账号。后台地址的路径总是 `/ghost`。和其他自托管应用一样，域名生效后请尽快自己完成这一步。

以后要换域名，就修改 `url` 变量并重新部署，再绑定新域名。只改域名不改 `url`，页面里的链接还会指向旧地址。

## 配置发信

Ghost 的邮件分两类：

- **事务邮件**：员工邀请、找回密码、会员注册和登录链接。用任意 SMTP 服务即可。
- **批量电子报**：给所有订阅者发文章。Ghost 官方目前只支持通过 Mailgun 批量发送，在后台 **Settings → Email newsletter** 中填写 Mailgun 的域名和 API Key。

事务邮件通过 ghost 服务的 **变量** 配置。Ghost 的配置项用双下划线表示层级，例如：

| 变量 | 示例 |
|---|---|
| `mail__transport` | `SMTP` |
| `mail__options__host` | `smtp.example.com` |
| `mail__options__port` | `465` |
| `mail__options__secure` | `true` |
| `mail__options__auth__user` | 你的 SMTP 用户名 |
| `mail__options__auth__pass` | 你的 SMTP 密码 |
| `mail__from` | `"博客名" <noreply@example.com>` |

保存后重新部署 ghost 服务，在后台邀请一个员工或用另一个邮箱注册会员，确认邮件能收到。

有些服务器提供商默认封锁出站的 SMTP 端口，表现为发信超时。遇到这种情况，换用发信服务提供的其他端口（如 `2525`），或向服务器提供商申请解封。同时按发信服务的说明为你的域名配置 SPF 和 DKIM，否则邮件容易进垃圾箱。

## 写作之前的几项设置

- **Settings → General**：站点名称、描述、时区和语言。
- **Settings → Design**：选择主题，或上传自己的主题，主题文件保存在内容目录里。
- **Settings → Membership**：决定是否开放会员注册、是否只对会员开放部分文章。
- **Settings → Code injection**：可以放网站统计脚本，例如[自托管的 Umami 或 Plausible](https://zenavo.app/zh-CN/blog/umami-vs-plausible)。

## 备份

Ghost 的数据分在两处：文章、会员和设置在 MySQL 里，图片、主题和上传的文件在 ghost 服务的 `/var/lib/ghost/content` 卷里。两者都要备份。

- 在 mysql 服务的 **备份与恢复** 中可以随时备份数据库。
- 内容目录是数据卷，备份时需要先停止项目，完成后再启动。

另外，Ghost 后台设置中的导出功能（Export）可以把文章和设置导出为 JSON，适合迁移到另一个 Ghost，但不包含图片。重要的数据，下载一份备份自行保存，并在新项目中恢复一次来验证。详见[备份与恢复](https://docs.zenavo.app/zh-CN/operations/backups)。

## 升级

模板使用 `ghost:5-alpine`，重新部署时会拉取 Ghost 5 的最新版本。升级前先备份 MySQL 和内容目录，读一下发行说明；Ghost 的大版本升级可能涉及数据库迁移，回到旧镜像不一定能回退，需要恢复升级前的备份。

## 常见问题

**打开网站显示的链接是 `localhost` 或旧域名？**
`url` 变量和实际访问的域名不一致。改成正确的完整地址，重新部署。

**会员收不到登录邮件？**
先在 ghost 服务的日志里找发信错误。常见原因是 SMTP 端口被封锁、用户名密码错误，或 `mail__from` 的域名没有通过发信服务验证。

**能从 WordPress 或其他平台迁移过来吗？**
Ghost 提供从 WordPress、Substack 等平台迁移的官方工具和文档。导入的图片会保存到内容目录，记得一并备份。

**Ghost 和 WordPress 怎么选？**
重写作和电子报、想要更少维护，选 Ghost；需要大量插件、商城或复杂页面，WordPress 更合适。Zenavo 也有 [WordPress 模板](https://zenavo.app/deploy?template=wordpress)。

从 [Ghost 模板](https://zenavo.app/deploy?template=ghost)开始：先让域名和 `url` 一致，再创建管理员、配好发信，最后把数据库和内容目录都纳入备份。
