用京东云搭建 Ghost 博客:从选轻量云主机到发布第一篇文章

在京东云搭建 Ghost 博客:选择轻量云主机与应用镜像,或用 Ubuntu 24.04 安装 Ghost 6.67.0;完成域名、备案、HTTPS、邮件与站外备份,并核算流量和续费。

把应用部署到土耳其|BRNCHOST · 土耳其 VDS
云服务器,积分可续期|雨云 · 国内外节点 · 积分兑换权益
低价年付,大流量 VPS|RackNerd · SSD 存储 · 1Gbps 端口
香港轻量,搭个小站|晚安云 · 香港云服务器
香港 VPS,大带宽可选|野草云 · BGP 直连
大陆访问,精品线路|搬瓦工 · CN2 GIA / CTGNet 套餐
资料归档,交给 AI 整理|WorkBuddy · 本地文件处理
建站起步,先看应用镜像|腾讯云 · 轻量应用服务器
CN2 GIA,中国方向优化|DMIT · Premium 网络
双 ISP 原生住宅 IP|丽萨主机 · 美国 9929 精品线路
高频 CPU,多地部署|Evoxt · 云服务器 · 每周异地备份
京东云轻量云主机:129元/年,新人专享,限购1台

想把文章放在自己的域名下,又不想每天围着插件和后台设置转,可以考虑 Ghost。它把编辑、发布、主题和订阅放在同一套后台里,适合个人博客、技术笔记和有固定更新节奏的刊物。你需要维护服务器,也可以自行保存文章、图片和备份。

京东云轻量云主机适合这个起点:套餐把计算资源、系统盘、带宽和月流量列在一起,控制台里还有 Ghost 应用镜像。读者主要在国内时,可以选择中国大陆地域,并通过京东云办理接入备案。省下的是选型和环境初始化的一部分工作;域名、邮件和备份仍要安排好。

下面先讲怎样选京东云,再分别说明镜像建站和手动安装。应用镜像适合尽快打开后台;希望明确控制软件版本的读者,可以在干净的 Ubuntu 24.04 上安装 Ghost 6.67.0。后一种方式使用 Nginx、MySQL 和 Ghost-CLI,不需要先装 Docker 或服务器面板。

为什么在京东云搭这个博客

套餐里看清带宽和月流量

一个刚开始更新的博客,可以把 Ghost 和 MySQL 放在同一台轻量云主机上。选择时看清 CPU、内存、系统盘、公网带宽、月流量和购买时长,预算就有了基本轮廓。京东云的轻量云主机说明列出了应用镜像、系统镜像、固定公网 IP 和防火墙等能力。

Ghost 官方给生产安装列出的内存下限是 1GB。考虑到这台机器还要运行 MySQL 和 Nginx,选 2GB 起步会留出一些余量;预算允许时,4GB 更便于日后放更多图片、修改主题或安排备份任务。这是小型单站的选型建议,不能换算成“保证支持多少万人”。如果还要同时运行其他应用,需要重新估算资源。

带宽和月流量要分别看。带宽影响同一时间能送出多少数据,月流量影响一个账期可以送出多少数据。带宽较高的套餐,未必允许整个月持续跑满。京东云流量包文档说明,套餐统计公网出流量,超过每月额度会产生额外费用;不要把套餐理解为不限流量。

文章里多用压缩后的 WebP 图片,大文件和视频放到专门的服务上,比一开始只盯着 CPU 数量更有用。访问量还不大时,也没必要为了“架构完整”先买独立数据库、对象存储和 CDN。

官方提供 Ghost 镜像,能少配一遍环境

京东云有专门的Ghost 博客系统建站说明。创建实例时选择 Ghost 镜像,实例建立后,应用管理页面会给出后台和前台访问地址,随后在浏览器里初始化管理员账户。

选择应用镜像,可以省去最初安装 Node.js 和 MySQL 的步骤。这份京东云教程没有标明镜像内 Ghost 的具体版本。下单时查看镜像说明,进入服务器后确认已安装版本,再决定升级;不能因为买的是新实例,就认定镜像一定包含当天最新的软件。

如果镜像的系统版本和部署目录与你准备维护的方案不同,沿用镜像自己的说明。不要在已经运行的镜像里直接执行下面的全新安装命令,否则可能装出第二套 Ghost,甚至让两个 Web 服务争用端口。

京东云官方 Ghost 建站文档中的应用镜像和应用管理步骤

图中是京东云文档里的历史控制台截图,展示选择 Ghost 镜像的位置。图内 Ghost 5.9.4 和套餐价格仅属于当时示例,不作为当前镜像版本或报价;具体选项以购买页面为准。

国内地域和备案服务,适合面向国内读者的长期博客

把源站放在中国大陆,国内读者访问源站时通常不需要经过跨境链路。这是选择国内地域的实际理由。最终速度还受读者运营商、服务器地域、页面图片大小和当时的网络状态影响,不能仅凭云厂商名字承诺打开时间。

京东云也提供备案服务,服务器、域名接入和工单可以在同一套平台里处理。它的轻量云主机网站备案说明写明,购买三个月及以上时长的轻量云主机可提交工单获取备案授权码。该说明发布时间较早,购买前应再核对当前控制台、备案系统对地域、实例和主体的要求。

免费备案服务指平台提供办理服务,不意味着免备案,也不代表提交当天就能正式上线。已有备案的域名搬到新接入商,也要确认接入手续。准备长期写国内博客的人,可以在整理栏目、主题和首批文章时同时办理这些事项。

需要查看当前规格和活动,可以从京东云轻量云主机入口进入。比较购买价时,把续费价也记下来;秒杀、首购和限量资格适用的人群不同,第一年的活动价不能当成长期年费。

购买前,把域名和实例用途定下来

如果只搭这一套博客,选择干净的 Ubuntu 24.04 LTS 系统镜像,后续维护最容易与本文对应。不要在承载其他网站的服务器上照着教程修改数据库 root 认证或安装第二个 Nginx;这套步骤面向新实例。

选择离主要读者较近、并且在购买页面可用的地域。先确认账号实名认证、域名实名、备案条件及服务器购买时长,再付款。系统盘除了容纳程序和数据库,还要存文章图片、日志和备份临时文件;把所有剩余空间都当成图片额度,后面很容易遇到磁盘写满。

准备一个正式地址,例如 blog.example.com。这里的示例域名需要换成你自己的域名,并在实际管理 DNS 的平台添加 A 记录,指向实例公网 IPv4。域名不必与服务器同在一家厂商购买,DNS 也不必迁到京东云。已有 AAAA 记录时,确认它指向真正可用的 IPv6;错误的 AAAA 记录会让部分访问和证书验证走错地方。

大陆实例用于公开网站时,先完成需要的备案与接入手续,再安排正式域名上线和证书签发。不要用换端口或只让读者访问 IP 的方式绕过这一步。

云防火墙先保留 SSH 管理入口,正式建站时开放 TCP 80 和 443。SSH 端口只对自己的管理地址开放,数据库的 3306 和 Ghost 的 2368 不需要向公网开放。浏览器流量先到 Nginx,再由它转到本机 Ghost。

选择 Ghost 应用镜像时怎么做

在京东云轻量云主机创建页面选 Ghost 应用镜像和合适套餐。支付并创建完成后,进入实例详情,打开应用管理,找到管理员地址和用户访问地址。

访问管理员地址,设置站点所有者的邮箱和密码,完成初始化后进入 Ghost 后台。新站不要长时间停在任何人都能初始化的页面;可以先通过云防火墙把 Web 访问限制在自己的地址,完成管理员设置后再开放。之后绑定正式域名、安排 HTTPS,并核对实际运行版本。

后台能打开以后,继续完成下文的站点设置、邮件和备份。镜像的进程管理方式、文件位置及升级命令,应以镜像说明为准。本文后面的 ghost backup 等命令适用于 Ghost-CLI 安装;使用之前先确认镜像采用的安装方式。

在 Ubuntu 24.04 上安装 Ghost 6.67.0

Ghost 6.67.0 于 2026 年 9 月 29 日发布。这里固定版本,便于知道安装的究竟是哪一版。以后跟着做时,可以先看官方发布记录,然后核对目标版本的运行环境。

这套生产部署使用 MySQL,不用 PostgreSQL、MariaDB 或 SQLite 替换。Ghost 当前支持的 MySQL 版本是 8.0 和 8.4;Ubuntu 24.04 的 MySQL 软件包可用于本例。系统准备步骤见Ghost 的 Ubuntu 安装文档。

先建立普通管理用户

使用京东云控制台提供的登录方式进入服务器。如果当前使用 root,在终端执行:

adduser blogadmin
usermod -aG sudo blogadmin
su - blogadmin

按提示设置密码。已有可正常使用 sudo 的普通账号时,可以沿用它,并将下文的 blogadmin 换成自己的账号。不要把这个 Linux 管理用户命名为 ghost,Ghost-CLI 会使用这个名字。

新账号的登录和 sudo 能力确认之后,再调整 SSH 登录策略。云控制台的 WebTerminal 可以作为管理入口,但不代替日常密钥和账户的妥善保存。

更新系统并安装 Web 服务和数据库:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y nginx mysql-server

如果 Ubuntu 的 UFW 已启用,还要允许 Web 流量:

sudo ufw allow 'Nginx Full'

云防火墙和系统防火墙是两层设置,一边开放不代表另一边已经开放。没有启用 UFW 时,不必为了照抄教程临时开启它;需要启用时,先保留当前 SSH 入口。

给新 MySQL 配置安装所需的认证

新安装的 MySQL 通常让本机 root 通过 socket 认证登录。Ghost 的安装向导需要数据库账户和密码。对这台专门建站的新实例,可以进入 MySQL:

sudo mysql

随后执行下面的 SQL,将密码占位符换成单独生成的强密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY 'REPLACE_WITH_A_STRONG_DATABASE_PASSWORD';
FLUSH PRIVILEGES;
exit

这是数据库密码,与服务器登录密码、Ghost 后台密码是三件事。安装时暂用数据库 root,让 Ghost-CLI 为博客创建权限受限的专用账户;网站日常运行不需要一直使用数据库 root。

如果数据库已经给其他应用使用,就不要修改这条认证设置。应提前创建独立数据库和相应用户,再在安装向导里填入;使用非 root 数据库账号时,库本身和权限需要事先准备好。

Node.js 要核对到小版本

Ghost 的通用 Node.js 文档推荐 Node 22 LTS。还要看所安装 Ghost 包的 engines:6.67.0 对 Node 22 的要求是 ^22.23.1。因此,只看到终端输出“v22”还不够,22.13 等更早版本不能满足这版包的要求。

安装最新可用的 Node 22 软件包:

sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key \
  | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=22
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" \
  | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install -y nodejs
node --version
npm --version

确认结果是 Node 22.23.1 或更新的 22.x。若仓库尚未提供满足条件的版本,先解决软件源或版本问题,别用忽略检查的参数硬装。具体约束可在Ghost 6.67.0 的软件包信息中查看;选择其他 Ghost 版本时重新核对,不把本文的小版本数字套到所有历史版本上。

建目录,让安装向导完成配置

安装命令行工具,随后建立博客目录:

sudo npm install -g ghost-cli@latest
ghost --version
sudo mkdir -p /var/www/ghost-blog
sudo chown blogadmin:blogadmin /var/www/ghost-blog
sudo chmod 775 /var/www/ghost-blog
cd /var/www/ghost-blog
ghost install 6.67.0

截至本文更新时,Ghost-CLI 的当前版本是 1.32.5;Ghost 6.67.0 的包要求 CLI 至少满足 ^1.29.1。安装 Ghost 本身使用普通管理账号执行,不要把最后一行改成 sudo ghost install。

向导会依次询问站点和数据库信息:

项目 这个单站示例的填写方式
Blog URL 自己已解析好的正式地址,例如 https://blog.example.com
MySQL hostname localhost
MySQL username / password 新数据库的 root 和刚设置的数据库密码
Ghost database name ghost_blog,避免与其他数据库重名
创建 Ghost 专用数据库用户 使用 root 安装时选择同意
配置 Nginx、SSL、systemd 选择同意,并按提示填写证书联系邮箱
启动 Ghost 选择同意

SSL 这一步依赖域名解析和公网验证。写正式域名时包含 https://,不要把公网 IP 当成最终 Blog URL。证书配置失败,先检查域名、80 端口和备案接入情况,不要反复重装数据库。

Ghost 官方 Ubuntu 安装文档中的生产环境要求

Ghost-CLI 会帮助配置反向代理、证书和 systemd。安装后仍要保存目录位置和维护账户,以后的检查、更新和备份都从这个目录执行。

第一次进入后台,先把站点变成自己的

打开 https://blog.example.com/ghost/,立即创建站点所有者账户。这里的邮箱应是长期能收信的地址。设置站点标题、简介、语言、图标、导航和主题,再发布一篇简短文章,检查首页、正文和手机上的图片显示。

京东云官方文档中的 Ghost 初始化完成页面

这是京东云文档中的历史 Ghost 初始化页面,可以看到写文章、定制站点和进入管理台的入口,不代表 Ghost 6.67.0 的当前界面。

图片是博客最容易被忽略的流量来源。上传之前控制尺寸和体积,正文里也避免连续放几张几兆的大图。封面应该与文章有关,不能为了填位置让每篇文章都套一张相同的装饰海报。

把正式域名确定后再对外分享,尤其不要先发 IP 地址,过几天又把域名改来改去。Ghost 的站点 URL 参与页面链接和邮件链接生成;需要更换时,从安装目录修改并重启:

cd /var/www/ghost-blog
ghost config url https://blog.example.com
ghost restart

这两行只改 Ghost 配置。若新域名与旧域名不同,还需要同步 DNS、Nginx 和证书设置,并检查旧链接的跳转。

邮件要单独配,服务器套餐不会自动补上

即使只写文章,后台密码重置等邮件也值得在上线前配置。启用会员后,登录邮件更直接关系到读者能否进入账户。买了云主机并不等于获得一个可以稳定投递的邮件服务。

Ghost 的事务邮件可以使用 SMTP。在安装目录的 config.production.json 中加入或调整 mail 部分。下面只是配置片段,需要替换服务商参数,不要拿它覆盖包含数据库、URL 和服务监听设置的整个文件:

{
  "mail": {
    "transport": "SMTP",
    "from": "博客名称 <noreply@example.com>",
    "options": {
      "host": "smtp.example.com",
      "port": 465,
      "secure": true,
      "auth": {
        "user": "REPLACE_WITH_SMTP_USER",
        "pass": "REPLACE_WITH_SMTP_PASSWORD"
      }
    }
  }
}

465 和 secure: true 是这个示例的一组参数;服务商要求 587 或其他方式时,按照其说明对应修改。完成域名验证,并按邮件服务商要求配置 SPF、DKIM 等记录,不要复制陌生域名的 DNS 值。还需确认实例网络政策和邮件服务端允许这种连接。

保存后运行 ghost restart,再通过后台可用的邮件发送流程检查投递。SMTP 密码属于凭据,不应放到文章截图、公开代码仓库或发给读者的配置下载包里。配置文件权限也要兼顾 Ghost 运行账户的读取能力,不能随手改成只有管理用户能读。

SMTP 用于事务邮件,Ghost 原生 Newsletter 批量发送目前要求 Mailgun 配置,不能把一组普通 SMTP 参数当成群发方案。相关设置分别见邮件配置文档和Newsletter 的 Mailgun 说明。只准备发布网页文章时,可以暂不启用 Newsletter,等订阅计划明确后再核算邮件费用。

备份要离开这台机器

Ghost-CLI 提供备份命令,在博客目录运行:

cd /var/www/ghost-blog
ghost backup

按照命令提示完成认证并保存备份文件。这个备份包含内容导出、会员、主题、图片及路由等文件,但不能把它当成整台机器的镜像,也不能认为它保存了全部 MySQL 状态和服务器秘密配置。

另行妥善保存 config.production.json 和恢复所需的环境信息;数据库还应安排独立备份。把备份复制到另一台机器或独立存储,只有仍在同一块系统盘上的压缩包,无法应对实例或磁盘丢失。备份包含会员邮箱和连接凭据时,需要控制访问权限。

恢复安排也要与备份方式相符。内容 JSON 用于导入内容,图片和主题有各自的位置,会员数据和数据库恢复要分别处理。定期在独立环境核对恢复步骤,可以知道丢失实例后究竟还缺什么;不要在唯一的线上博客里随手做恢复练习。

日常检查可以从下面几个命令开始:

cd /var/www/ghost-blog
ghost ls
ghost doctor
ghost log

升级前运行 ghost check-update,阅读目标版本的要求和变更,保存站外备份,再安排 ghost update。如果新版本调整了 Node.js 或主题要求,要把环境更新和主题兼容性一起纳入计划。更详细的参数见Ghost-CLI 文档。

能打开网页之后,还有几个边界要知道

这套安装不包含原生 Web Analytics。 Ghost 官方说明,Ghost-CLI 安装可以通过 Ghost(Pro) 托管的 ActivityPub 服务使用社交网络功能,但不兼容原生 Web Analytics。需要自托管分析或完整自托管 ActivityPub 时,要看新的 Docker Compose 安装方式。不要因为后台介绍 Ghost 6 的功能,就认为这里所有组件已经装齐。

国内源站不等于所有下载都更快。 软件包下载、npm 和邮件服务可能连接境外服务。遇到安装拉取失败,先分清源站到软件仓库的连接和读者到博客的连接;它们是两条不同路径。不要关闭 TLS 校验来换取下载成功。

博客速度也受页面本身影响。 大图、外部脚本和主题里加载的字体,可能比服务器配置更影响手机访问。先检查这些资源,再考虑升配或增加 CDN。使用第三方存储和 CDN 时,另外核算费用与配置要求;Ghost 图片自动搬到对象存储并不是买一台云主机就会发生的事。

出现 502 时,先看服务是否启动。 进入博客目录用 ghost ls 和 ghost log 判断进程情况,再看 Nginx 配置、数据库连接和磁盘空间。如果进程正常但域名打不开,就转向 DNS、防火墙、证书和备案接入排查。保留日志中的实际错误,隐藏密码等敏感信息后再提交工单。

第一年费用算清楚,第二年也算一次。 云主机、域名、邮件、站外备份和超额流量是不同项目。京东云轻量套餐与预装镜像能让新博客的起步更简单,国内地域和备案服务也方便长期运营;后续是否需要升配,还是要看自己站点的资源占用和真实访问情况。