Ghost 博客迁移重装
Charpter 1 前言
等到花开
2019 至今,原来已经四年了。早期安装 GHOST 环境的时候,系统版本、node 版本都比较低,Ghost 迭代更新很快,而最新版需要 node18版本的支持,现有Ubuntu16版本低,无法正常编译 node18 的依赖,所以就导致现在升不上去 ghost 最新版,于是乎打算迁移重装。
Charpter 2 备份数据
Ghost备份还是很简单的
Cap 2.1
进入后台找到 Labs 实验室,如图(图来自最新版 Ghost,旧版有点不一样,不过都是 Labs 关键字)
然后 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 文件夹,进去把备份压缩包下载到本地留存
得到的压缩包解压如图:
比较重要的目录
- 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