开源博客Ghost安装/升级指南
距离上一次更新这个网站的系统版本已经过去了一年,今天尝试按照去年的方法升级版本,发现已经不通用了。网上没有找到其他中文安装或升级指南,就把我的操作过程记录一下。
更新日志:2023/1/17更新5.30版本安装、更新方法
在这里郑重提醒:务必做好与Mailgun客服沟通的准备,及时查看邮件,最好不要绑定可扣费的银行卡。如果不是非用Ghost不可,请及时止步,转用其他博客系统。
安装环境
- 宝塔面板「宝塔纯净版 7.6.0版本」。
- Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-124-generic x86_64)
- Nginx
- Docker
安装Docker
省略,因为作者太懒,该环节请到别处查询
配置宝塔站点
- 在宝塔侧边栏的「网站」中点击「添加站点」
- 填写域名,确保域名已经解析至服务器ip
- 可以看到,填写好域名后将会自动生成网站根目录
/www/wwwroot/cheapy.top
,接下来会用到。 - 点击「提交」。然后点击刚刚创建好的网站域名,进入设置,点击侧边栏的「SSL」,选择「Let's Encrypt」证书并签署即可。
- 再点击侧边栏的「反向代理」,如下图所示填写,目标url填入
http://127.0.0.1:8081
。 - 2023年6月28日补充:最新版5.3版本亲测需要将「发送域名」设置为完整网站域名(如https://cheapy.top)
- 点击保存后,点击刚刚生成的配置文件
- 删掉所有内容,替换为以下内容:
#PROXY-START/
location ~* \.(php|jsp|cgi|asp|aspx)$
{
proxy_buffering off;
proxy_pass http://localhost:8081;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header REMOTE-HOST $remote_addr;
}
location /
{
proxy_pass http://localhost:8081;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header REMOTE-HOST $remote_addr;
client_max_body_size 200m;
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
proxy_ignore_headers Set-Cookie Cache-Control expires;
add_header Cache-Control no-cache;
expires 12h;
}
#PROXY-END/
保存即可。
安装Ghost
在服务器中新建一个单独的文件夹,用于存放网站相关配置文件。我这里直接使用宝塔建立站点时生成的文件夹/www/wwwroot/cheapy.top
进入该文件夹,新建空白文件,文件名为stack.yml
,文件内容:
version: '3.1'
services:
ghost-cheap:
image: ghost:5.30
volumes:
- /www/wwwroot/cheapy.top/volume:/var/lib/ghost/content
# 注意,这里冒号左边换成你用来存放网站文件的文件夹
restart: always
ports:
- 8081:2368
environment:
# see https://ghost.org/docs/config/#configuration-options
database__client: mysql
database__connection__host: db
database__connection__user: root
database__connection__password: yourpassword
database__connection__database: ghost
url: https://cheapy.top
# url这里写你网站最终的网址
#NODE_ENV: development
db:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: yourpassword
# 这里的密码要跟上面的密码一致
使用ssh登入服务器命令行,执行cd /www/wwwroot/cheapy.top
执行docker-compose -f stack.yml up
,看后台已经不跑了,就可以在浏览器输入网址看是否能打开Ghost主页了
如果网页可以正常浏览,就可以在ssh里ctrl+c退出,再执行docker-compose -f stack.yml up -d
让Ghost在后台跑了。
这时候就可以在浏览器输入https://你的网址/ghost,开始配置你的网站啦,基本安装已经结束
从低版本升级到Ghost 5.30
Ghost版本变化非常大,只有使用MySQL作为数据库的3.x、4.x版本可以升级,其他版本只能重新安装。
3.x/4.x+MySQL升级方式
非常抱歉,本站之前使用的是SQLite数据库,没有涉及本升级方式,给不出详尽的教程。可能通过重新拉取最新镜像运行的方法可行,但我没有测试过,不敢保证,请在数据完全备份后再尝试,如有数据丢失概不负责。
重新安装的方式升级
该方法其实就是将原有数据导出,安装新版本后再导入。由于官方没有给出Docker版本的完整数据导出导入方法(可能是我不知道,有知道的同学辛苦共享一下~),我这里只能通过一些蠢办法来进行。
该方法可以保留以下数据:
- 主题文件
- 上传到服务器的图片
- 发表的文章、页面
- 订阅用户列表
该方法仅适用于旧版本使用Docker安装,且挂载了宿主机文件夹的用户。接下来就开始吧!
导出旧版本数据
- 登录ghost网页后台,点击侧边栏的Members,再点击右上角齿轮图标,点击「Export all members」即可导出订阅用户数据。
- 点击侧边栏下方的齿轮图标,再点击「Labs」,点击 Export your content 右边的「Export」,即可导出网站内容数据(不包含上传到服务器的附件)
- 在ssh中,使用
docker stop [ghost容器名字]
命令停用ghost容器;使用cp命令复制一份ghost挂载在宿主机的文件夹用于备份。这样就备份了网站的theme文件、图片文件。 - 重新安装ghost最新版本。使用本文前面的安装办法即可。安装时请将宿主机挂载文件地址设为与旧版本的挂载地址一致。
- 安装完毕后登入Ghost后台,再挨个导入Members文件盒content文件就可以了。
配置Ghost邮件服务器
到这里为止,如果一切顺利,你的Ghost网站已经可以正常使用大部分功能了。
但最重要的邮件功能还不可用。Ghost已经更新了原生评论系统,需要访客通过邮箱注册后才可以用,如果不把邮件功能也配置好就太可惜了!请期待下一篇文章的介绍吧!太久没码字我真的写不下去了😭