Ghost 是一款专注于内容发布和订阅的现代开源博客平台,由专业团队维护,界面设计精良,内置会员系统和邮件订阅功能,特别适合内容创作者和媒体团队使用。Ghost 官方提供 ghost-cli 工具,可一键完成安装、Nginx 配置和 SSL 证书申请,极大简化了部署流程。本文以 Ubuntu 22.04 为例完整演示。
本文要点
- Node.js LTS 版本安装
- 创建专用用户并安装 ghost-cli
- 使用 ghost-cli 一键部署 Ghost
- Nginx 反向代理与 Let's Encrypt SSL 自动配置
- Ghost 基本配置与会员订阅功能
环境要求
| 组件 | 要求 | 说明 |
|---|---|---|
| 操作系统 | Ubuntu 20.04 / 22.04 | 官方仅完整支持 Ubuntu LTS |
| 内存 | ≥ 1GB | 推荐 2GB,Node.js 应用较占内存 |
| Node.js | 18.x LTS | 官方推荐版本 |
| MySQL | 8.0 | Ghost 5.x 需要 MySQL 8 |
| Nginx | 最新稳定版 | ghost-cli 会自动配置 |
Ubuntu 专属说明
ghost-cli 的自动安装功能目前仅完整支持 Ubuntu 系统。如果使用 Debian,部分自动化步骤(如 systemd 服务配置)可能需要手动处理,建议改用 Docker 部署方式。
安装 Node.js
# 使用 NodeSource 官方脚本安装 Node.js 18 LTS
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt install -y nodejs
node --version # 应输出 v18.x.x
npm --version安装 MySQL 8.0
apt install -y mysql-server
systemctl enable --now mysql
mysql_secure_installation创建 Ghost 专用数据库和用户:
mysql -u root -p
CREATE DATABASE ghost DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'ghostuser'@'localhost' IDENTIFIED BY '此处填强密码';
GRANT ALL PRIVILEGES ON ghost.* TO 'ghostuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;安装 Nginx
apt install -y nginx
systemctl enable --now nginx创建专用用户
ghost-cli 要求使用非 root 用户运行,且不能是超级用户,创建专用账户:
adduser ghost-runner
usermod -aG sudo ghost-runner
# 切换到新用户
su - ghost-runner安装 ghost-cli 并部署 Ghost
# 以 ghost-runner 用户执行
npm install -g ghost-cli
# 创建网站目录(必须空目录且所有者为当前用户)
sudo mkdir -p /var/www/ghost
sudo chown ghost-runner:ghost-runner /var/www/ghost
cd /var/www/ghost
# 运行安装向导
ghost installghost install 会交互式询问以下信息:
- Blog URL:填入你的完整 HTTPS 域名(如 https://your-domain.com)
- MySQL hostname:localhost
- MySQL username / password / database:填入前面创建的信息
- Set up Nginx:选择 Yes,自动配置反向代理
- Set up SSL:选择 Yes,自动申请 Let's Encrypt 证书(需确保域名 DNS 已指向此 IP)
- Set up systemd:选择 Yes,开机自动启动
安装完成标志
ghost-cli 全部配置完毕后,终端会输出 Ghost 后台地址(https://your-domain.com/ghost)并提示安装成功。访问后台 URL 完成管理员账号注册即可。
Ghost 常用管理命令
cd /var/www/ghost
ghost status # 查看运行状态
ghost restart # 重启 Ghost
ghost stop # 停止 Ghost
ghost start # 启动 Ghost
ghost update # 更新到最新版本
ghost log # 查看错误日志
ghost config # 修改配置配置 Ghost 基本设置
登录后台 https://your-domain.com/ghost,完成以下设置:
- Site settings:设置站点名称、描述、Logo 和封面图
- Design:选择内置主题(Casper、Source、Edition 等)或上传自定义主题
- Labs:开启会员(Members)和订阅(Subscriptions)功能
- Email newsletter:配置发件服务(推荐 Mailgun 或 Postmark)
会员与订阅功能
Ghost 内置免费/付费会员系统,读者可注册成为会员并订阅更新邮件,付费模式需接入 Stripe。主要功能对比:
| 功能 | 免费会员 | 付费会员 |
|---|---|---|
| 文章访问 | 公开文章 | 所有文章(含付费专属) |
| 邮件订阅 | 是 | 是 |
| 评论互动 | 是(需开启) | 是 |
| Stripe 付款 | 不适用 | 需配置 Stripe 账户 |
Stripe 付费功能
Ghost 的付费订阅功能需要 Stripe 账户,在 Ghost 后台 Settings → Membership 中连接 Stripe API Key 后即可开启付费内容。个人博客通常仅使用免费会员功能即可。
小结
- ghost-cli 将环境配置、Nginx、SSL 一步完成,是 Ghost 官方推荐的部署方式
- 内置会员订阅系统是 Ghost 区别于其他博客系统的核心特色
- 常用管理命令以 ghost 开头,在 /var/www/ghost 目录下执行
- 定期运行 ghost update 保持版本最新,享受安全更新
常见问题
ghost install 提示 SSL 申请失败怎么办?
最常见原因是域名 DNS 尚未生效。确认域名 A 记录指向服务器 IP 且已传播(可用 dig your-domain.com 验证),然后重新运行 ghost setup ssl。
Ghost 可以迁移到其他服务器吗?
可以。在旧服务器后台 Labs → Export 导出内容 JSON,在新服务器安装 Ghost 后通过 Labs → Import 导入。图片等媒体文件需要单独复制 /var/www/ghost/content/images 目录。
Ghost 和 WordPress 哪个更适合内容订阅型站点?
Ghost 的会员订阅系统是原生内置的,体验更流畅;WordPress 需要通过 WooCommerce 等插件实现类似功能,配置更复杂。如果核心需求是内容订阅,Ghost 是更好的选择。
Ghost 支持中文界面吗?
Ghost 后台目前以英文为主,但前台(读者端)支持多语言,主题的语言跟随主题的 i18n 配置。可通过修改主题文件将前台界面汉化。