Ubuntu部署ghost博客所踩的小坑

Ubuntu部署ghost博客所踩的小坑
Photo by Growtika / Unsplash

Ghost 6.0 发布后,我就被它宣传的“联邦宇宙(Activitypub)”和“内置 Web 分析”功能狠狠吸引了。可惜一直用的 1Panel 面板并没有 Ghost 的升级选项,考虑到 Ghost 6 改动幅度较大,盲猜1Panel里的Docker需要重建,再加上想要尽快体验ghost的联邦宇宙等功能,所以打算用官方推荐的方式“一劳永逸”。


换系统,换方式

我挑了个快要过期的 VPS 练手,把系统换成了 Ubuntu 24.04。结果部署异常顺利,Ghost 6.0 安装一气呵成。于是果断把主 VPS 也重装,迁移博客数据,正式切换新架构。

Ghost 官方推荐部署环境如下:

  • ✅ Ubuntu 22.04 或 24.04
  • ✅ MySQL 8+
  • ✅ Node.js v22(仅支持这个版本
  • ✅ Nginx
  • ✅ Ghost-CLI 工具
  • ✅ 一个非 root 的 sudo 用户

安装步骤(Ubuntu 24.04)

创建非 root 用户

adduser ghostuser
usermod -aG sudo ghostuser
su - ghostuser

安装系统依赖

sudo apt update && sudo apt upgrade -y
sudo apt install nginx mysql-server -y
sudo ufw allow 'Nginx Full'

配置 MySQL 密码认证

Ghost 不支持 auth_socket 模式,需要切换为 mysql_native_password

sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your-password';
FLUSH PRIVILEGES;
EXIT;

建议运行:

sudo mysql_secure_installation

安装 Node.js v22

sudo apt 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 update
sudo apt install -y nodejs

node -v && npm -v

👻 安装 Ghost-CLI

sudo npm install -g ghost-cli

创建网站目录并设置权限

sudo mkdir -p /var/www/ghost
sudo chown ghostuser:ghostuser /var/www/ghost
cd /var/www/ghost

正式安装 Ghost

ghost install

安装过程会提示:

  • 博客域名(输入完整的 https://xxx.com
  • 数据库配置
  • 是否自动配置 nginx / SSL / systemd 服务

踩坑记:Let’s Encrypt 安装失败

安装 SSL 证书这一步卡住了,错误信息如下:

Message: Command failed: /bin/sh -c sudo -S -p '#node-sudo-passwd#'  ./acme.sh --install ...
[Wed Aug 6 04:16:11 UTC 2025] It is recommended to install crontab first.
[Wed Aug 6 04:16:11 UTC 2025] Pre-check failed, cannot install

原因:

系统没装 cron,Ghost-CLI 在安装 Let’s Encrypt 时依赖 acme.sh,它需要用 cron 来自动续签证书。

解决方法:

sudo apt install cron

然后重新运行安装:

ghost install ssl

或干脆执行:

ghost setup ssl

问题顺利解决。


联邦宇宙 & Web 分析体验反馈

原以为 Ghost 6.0 的“联邦宇宙”和“内置分析”是开箱即用的神器,实际用下来有点不如预期:

🌐 联邦宇宙(ActivityPub)

  • ✅ 博主可以被 Mastodon 等联邦平台关注,也可以关注他人
  • ❌ 目前不支持客户端功能
  • ⚠️ 功能还稍微有点粗糙

如果你指望 Ghost 成为一个真正“联邦社交平台”,目前还差点火候。


📊 Web Analytics

  • ✅ 轻量级内置分析功能(无需 GA)
  • 并不是完全“内建”,依赖第三方的统计分析
  • ⚠️ 需要额外配置

期待的“零配置可视化分析面板”暂时没有出现。


🧾 日常维护命令

ghost status       # 查看服务状态
ghost restart      # 重启 Ghost
ghost upgrade      # 升级 Ghost 和依赖
ghost doctor       # 健康检查
ghost setup ssl    # 重新配置 SSL

后台管理地址默认是:https://yourdomain.com/ghost


总结与建议

  • Node.js v22 是硬要求,Ghost 6 只支持它
  • 安装 cron 是配置 SSL 的必要步骤
  • 联邦宇宙 和 Web 分析 功能目前还有较大改进空间
  • Ghost 依然是一款优秀的写作平台,但不要期望太多“即插即用”社交功能

最后的话

这次从 1Panel 回归 Ghost 官方部署,虽然中间踩了个 SSL 的坑,整体过程依然算顺利。对我这种写作者来说,Ghost 的速度和极简风格依旧无可替代。

如果你也打算部署 Ghost 6,不妨按照这篇流程一步步来,踩的坑我已经帮你趟过了 😄。

Read more

风动,幡动还是心动

风动,幡动还是心动

读南怀瑾先生的《禅宗和道家》,读到“风动、幡动、心动”这个典故(佛家称为公案)时,我的思绪回到了过去。 记得第一次读到这个公案,大概是在初中的政治课本上。故事是这样的: 唐代仪凤元年(676年),慧能大师在广州法性寺(今光孝寺)听印宗法师讲《涅槃经》。一阵风吹来,寺中的幡旗随风摇曳,引发了两位僧人的争论。一位僧人说:“是风在动。”另一位坚持:“是幡在动。”两人争执不下,慧能大师便上前说道:“不是风动,也不是幡动,是仁者的心在动。” 当时读到这里,我心想古人真傻,这看似很有哲理,实则是对自然现象缺乏了解,根本就是一种空气流动罢了,和风、幡、心都毫无关系。甚至到了大学,我和信奉佛教的父母聊起这个公案时,依旧是以嘲弄的口吻,当时还试图用这个典故让他们“回头”。 随着年龄增长,读书和见识也多了,才发现当初的小丑恰恰是我自己。 这哪是古人没有见识,分明是我的认知高度不够,没有达到那个层次,

By laoliu
金钱心理学:财富、人性和幸福的永恒真相

金钱心理学:财富、人性和幸福的永恒真相

我曾以为,理财是一个很复杂的东西,股票、基金、保险等等,充满了复杂的公式和博弈。所以,对理财这方面一直抱着敬而远之的态度,只会挑选一些风险小的项目。也曾在股市上投入了一些,但每次都赶不上节奏,所以慢慢的这方面的心思也就淡了。 前几天偶尔在微信读书上看到了摩根·豪泽尔的《金钱心理学:财富、人性和幸福的永恒真相》这本书,才发现原来理财也可以是这么简单的一件事情,但简单的事情,往往也是最不容易做到的事情。 我们很多人都会大精力花在寻找下一个“暴富”的机会上,希望能一击即中,实现财务自由,其实这是很不现实的东西。这本书没有教我们如何赚钱,而是教我们如何守财。 这听起来似乎现在主流的消费观向左,但我认为却触及了财富的本质,特别是当下这个大环境中,守财才是更重要的。书中虽然用了大量的例子,但给我印象最深,也是颠覆我原来概念的一个例子是:地球的冰河期并非由某个特别寒冷的冬天造成,而是因为无数个凉爽的夏天。那些看似不够热的夏天,导致上一年的冰雪没有完全融化,日积月累,最终形成了巨大的冰川。我一直以为,冰河期的形成,是突变的,是哗啦一下子,地球被冻上了。 作者用这个例子来说明,真正的财富积累,靠

By laoliu
曼联再次输球

曼联再次输球

不出所料,曼联又输了,输给了同城死敌曼城,这结果一点都不让人感到意外,所以也就没有了什么不好的情绪。如今的曼联,用“每况愈下”这个词来形容,简直再贴切不过了。 每年夏天,曼联都像个豪气的冤大头,挥舞着钞票在转会市场上一掷千金。买回来的球员的表现确都不如预期。今年,他们终于改变了买人的策略,不再只盯着那些潜力新人,而是把钱砸向了联赛中的“即战力”。即战力来是来了,但是花费了2亿英镑买的即战力,也不会进球了。 机会是有,但球就是不进。据统计,开赛以来曼联的射门次数达到了68次,英超各队第一;但是进球才进了4个,还有两个乌龙球。 然而反观那些曾经在曼联被嫌弃、被放弃的球员,在别的球队却像是被施了魔法,个个大放异彩。你看看这份名单: * 拉什福德:本场比赛一个助攻,曾经的“曼联太子”在巴塞罗那找到春天。 * 霍伊伦:打进了一个球,那个在曼联被诟病“不会跑位”的前锋,跑位变得无比机敏,射门也准了。 * 加纳乔:送出助攻,天赋在别队彻底兑现。 * 麦克托米奈:

By laoliu
解决腾讯 EdgeOne 域名解析与 SSL 证书申请失败问题

解决腾讯 EdgeOne 域名解析与 SSL 证书申请失败问题

前几个月,我关注到腾讯新推出的 EdgeOne 服务。这款产品无需备案和实名,而且提供免费额度,对于个人网站来说非常友好。刚发布时兑换码一码难求,我并没有太多关注。后来,腾讯推出了一个活动,只要在 X(原 Twitter)上转发推文,就能获得两个兑换码。我成功领取并兑换了一个,并将其用于我的“镜缘轩”网站。 我的“镜缘轩”网站部署在 CloudCone 的 VPS 上,访问速度一直不尽如人意。接入 EdgeOne 后,网站速度有了显著提升,这让我决定将我的博客也套上这个服务。 域名解析遇到的第一个问题:CNAME 扁平化 在将博客主域名iliu.org 通过 CNAME 解析到 EdgeOne 提供的地址后,我发现 EdgeOne 无法识别解析成功。奇怪的是,“镜缘轩”网站的解析过程却非常顺利。

By laoliu