Ghost 博客迁移重装

LeslieLin 学习笔记
阅读量 0 评论量 0

Charpter 1 前言

等到花开

2019 至今,原来已经四年了。早期安装 GHOST 环境的时候,系统版本、node 版本都比较低,Ghost 迭代更新很快,而最新版需要 node18版本的支持,现有Ubuntu16版本低,无法正常编译 node18 的依赖,所以就导致现在升不上去 ghost 最新版,于是乎打算迁移重装。

Charpter 2 备份数据

Ghost备份还是很简单的

Cap 2.1

进入后台找到 Labs 实验室,如图(图来自最新版 Ghost,旧版有点不一样,不过都是 Labs 关键字)

image-20231205222031443.png

然后 Export 就好,保存好导出的 JSON 文件。

Cap 2.2

登入服务器终端,进入到 ghost 主程序目录

ghost backup #执行后会有以下输出

Love open source? We’re hiring JavaScript Engineers to work on Ghost full-time.
https://careers.ghost.org


+ sudo systemctl is-active ghost_iobiji-com
? Sudo Password [input is hidden] 
# 输入登录终端用户密码进行下一步
+ sudo mkdir -p /var/www/biji/backup
? Enter your Ghost administrator email address 
# 输入Ghost 后台登入邮箱
? Enter your Ghost administrator password [input is hidden]
# 输入Ghost 后台登入密码
# 执行完毕后会在当前目录生成 backup 文件夹,进去把备份压缩包下载到本地留存

得到的压缩包解压如图:

image-20231205222648495.png

比较重要的目录

  • images 文章图片
  • media 媒体文件
  • settings 路由配置文件(可以忽略)
  • themes 主题文件

Ghost 是有用到 MYSQL 数据库存储的,只不过没有必要再去备份数据库,按照上面两个步骤备份,数据备份出来也是完整的。

Charpter 3 安装环境

操作系统: Ubuntu Server 22.04 LTS 64位

内存: 2G

CPU: 1核

公网带宽: 1Mpbs

Ghost’s current recommended Node version is Node v18 LTS.

Version Support Level
17.x and below Unsupported
18.x (Node v18 Hydrogen LTS) Recommended
19.x and above Unsupported

操作系统自行重装,不过多讲述。

Cap 3.1 安装node 18

# 终端执行命令
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v # 查看node版本

Cap 3.2 安装Nginx 环境&MYSQL 数据库

sudo apt-get install nginx
nginx -v # 输出版本号
sudo ufw allow 'Nginx Full' # 防火墙允许HTTP和HTTPS连接

sudo apt install mysql-server
sudo mysql # 进入数据库管理
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '要设置的密码';# 修改默认密码
quit; # 退出数据库管理

Cap 3.3 安装GhostCLI脚手架

sudo npm install ghost-cli@latest -g # 安装Ghost脚手架

# 创建ghost文件夹的网站目录,文件夹名可自定义
sudo mkdir -p /var/www/ghost

# 使文件夹拥有权限,<user>是当前用户名
# 例如当前用户名是ubuntu,那么应该是:sudo chown ubuntu:ubuntu /var/www/ghost
sudo chown <user>:<user> /var/www/ghost

# 设置读写权限
sudo chmod 775 /var/www/ghost

# 进入根目录
cd /var/www/ghost

# 国内机器建议使用tbify插件进行安装 Ghost 博客平台
sudo npm install -g tbify
tbify ghost install
# 非国内直接
ghost install

选项配置:

  • Enter your blog URL: 博客展示地址,格式:http(s):(www.)example.com,不支持ip地址。
  • Enter your MySQL hostname: 数据库主机地址,回车默认是localhost
  • Enter your MySQL username: / Enter your MySQL password: 数据库用户名/密码,上面安装的数据库用户名是root,密码是自己设置的。
  • Enter your Ghost database name: Ghost博客数据库名
  • Do you wish to set up "ghost" mysql user? 设置数据库用户名为ghost,这个为了避免权限太大导致数据瞎搞,Ghost官方推荐是y
  • Do you wish to set up Nginx? 自动化Nginx,推荐y
  • Do you wish to set up SSL? 配置SSL证书,推荐y,如果你有证书问题,请查看文章最下面的问题。
  • Enter your email (For SSL Certificate):个人邮箱,配置ssl证书需要的邮箱地址。
  • Do you wish to set up Systemd? 使用ghost进程管理工具,推荐y,个人觉得海星。
  • Do you want to start Ghost? 启动Ghost博客就可以进入网址访问。

Charpter 4 恢复备份数据

Cap 4.1

以上步骤安装好 Ghost 之后,登入后台 https://example.com/ghost 设置好账号密码。

Cap 4.2 恢复媒体&主题

# 将备份的压缩包数据(包含images\media\themes)复制上传到/var/www/ghost/content目录下,覆盖即可。
sudo mv /放压缩包的路径/data.zip /var/www/ghost/content/data.zip

cd /var/www/ghost/content
# 解压
sudo unzip data.zip

# 一般 ghost 出现异常可以执行这条命令会有操作提示,这里强制覆盖了文件夹导致操作权限变了,ghost doctor 会给出修复指令,执行即可
ghost doctor

# 重启ghost播客
ghost restart

Cap 4.3 找到Labs

如图Labs

点击 Open Importer 按钮 ,然后导入~~

挞嗒,恭喜你!至此迁移恢复完毕。

Charpter 5 图片优化

参考之前写的一篇教程GHOST图片优化

Charpter 6 SSL 续期

Reference: Ghost Let's Encrypt

# 终端执行如下
sudo /etc/letsencrypt/acme.sh --cron --force --home "/etc/letsencrypt"

Charpter 6.1 没有了

2023.12.5

喵~