💡
更新于:2023年9月13日,Ghost版本:5.60
💡
记录一下自己搭建Ghost博客的过程,本教程面向小白。由于环境或者操作步骤有差异,如果您在准备按照我的步骤操作搭建的时候,请做好备份工作。如遇到数据问题,请注意作者不承担风险责任。
💡
Ghost 是一个开源的专业发布平台,建立在现代 Node.js 技术堆栈之上,专为需要强大、灵活和高性能的团队而设计。
写在前面
本教程要特别感谢Memories'Blog、平替生活,在我不断切换搜索引擎但是所获不多,百思不得其解的时候,有幸阅读了其发布的文章,再综合了其灵感的代码后顺利搭建了Ghost。
安装环境
- 腾讯云轻量云服务器 2H2G3M
- 宝塔面板「最新版8.02」。
- Ubuntu 20.04.4 LTS
- Nginx
- Docker
1.准备工作
1.1安装宝塔面板
安装宝塔面板,宝塔面板可以帮助我们避免一些代码困扰,同时能够帮我们便捷地安装软件、编辑文件、管理网站等。
我的系统是Ubuntu 20.04.4,所以在SSH运行以下代码安装宝塔:
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
1.2安装Nginx和Docker
安装好宝塔面板后,直接进入宝塔面板,在软件商店中安装:
- Nginx 1.22.1(编译安装)
- Docker管理器 3.9.2
2.新建宝塔站点
- 在宝塔面板-网站-「添加站点」,把你的域名解析到你的服务器,并在添加站点中绑定你的域名。
- 然后在站点设置中配置你的SSL:你可以选择申请一个宝塔提供的Let’s Encrypt证书,或者自己添加其他证书,记得选择强制SSL(这个对新版本的Ghost站点来说十分重要)。
3.为站点添加反向代理
在站点设置的侧边栏点击「反向代理」并「添加反向代理」,按照下面的图片进行填写:
- 目标URL
http://127.0.0.1:8081
- 发送域名
按照下图规范填写你的访问域名(SSL)
点击「提交」后,在列表中点击「配置文件」,全部替换成下方代码,点击保存。
#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/
4.安装Ghost
- 登录到SSH,切换到root。输入命令:
Sudo su
- 进入当前用户目录
cd ~
- 创建相关文件夹并进入
mkdir docker_app && cd docker_app && mkdir ghost && cd ghost
- 创建 docker-compose.yml 和 config.production.json
touch {docker-compose.yml,config.production.json}
然后你可以进入宝塔面板,在「文件」的/根目录/root/docker_app/ghost下看到你刚刚创建的 docker-compose.yml 和 config.production.json文件,分别双击进行编辑,代码如下:
docker-compose.yml
version: '3'
services:
ghost:
image: ghost
container_name: ghost
ports:
# 宿主机与容器端口映射,8081宿主机端口,另一个是容器的,访问时,宿主机公网 IP:8081/
- "8081:2368"
volumes:
# 生产模式下的ghost配置文件映射目录(ghost相关配置写在这里面,比如数据库、邮箱...)
- /root/docker_app/ghost/config.production.json:/var/lib/ghost/config.production.json
# ghost 相关数据目录从容器映射到宿主机
- /root/docker_app/ghost/content:/var/lib/ghost/content
environment:
# 以生产模式运行
- NODE_ENV=production
restart: unless-stopped
config.production.json
{
"url": "https://你的域名/",
"server": {
"port": 2368,
"host": "0.0.0.0"
},
"database": {
"client": "sqlite3",
"connection": {
"filename": "content/data/ghost.db"
},
"useNullAsDefault": true,
"debug": false
},
"logging": {
"transports": [
"file",
"stdout"
]
},
"process": "systemd",
"paths": {
"contentPath": "/var/lib/ghost/content"
}
}
5.创建Ghost容器
- 编辑并保存好上面两个文件后,在SSH中输入下面命令:
cd ~/docker_app/ghost
docker-compose up -d
等跑完代码就可以在浏览器输入「https://你的域名/ 」访问您Ghost网站了!
网站后台地址是:「https://你的域名/ghost 」
到此尽情享受写作和分享的乐趣吧!
或许你想看更多 技术
宝塔+Docker部署Artalk并开启内容审核
用Mailgun配置Ghost邮件系统
无需申请权限在HTML中嵌入抖音短视频
Ghost使用又拍云作为免费云存储
即刻订阅 最新动态