赞
踩
建议前往 爱吃猫的鱼BLOG 查看原文
Halo 是一个强大易用的开源建站工具,拥有丰富的主题模板和插件,帮助用户快速搭建属于自己的博客系统。
准备
注意
本文涉及 docker 和 docker-compose 的安装,Nginx、MySQL 使用宝塔面板安装。
安装 yum-utils
# yum-utils是yum的工具包集合,需要用到其中的yum-config-manager
sudo yum install -y yum-utils
从国内服务器上下载 docker
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 docker
sudo yum install -y docker-ce docker-ce-cli http://containerd.io docker-buildx-plugin docker-compose-plugin
验证 docker 是否安装成功
sudo docker --version
# 出现版本号即为安装成功
# Docker version 24.0.6, build ed223bc
安装 docker-compose
方案一:手动安装
访问 docker/compose 获取最新版本,选择文件名称为 docker-compose-linux-x86_64
下载并上传至 /usr/local/bin/docker-compose
目录,/docker-compose
需手动创建。
方案二:命令行安装
# 下载docker-compose文件并创建目录
# 可能较慢
curl -L https://github.com/docker/compose/releases/download/2.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 将文件复制到/usr/local/bin环境变量下
mv docker-compose /usr/local/bin
# 给该文件执行权限
chmod +x /usr/local/bin/docker-compose
验证 docker-compose 是否安装成功
docker-compose -v
# 出现版本号即为安装成功
# Docker Compose version v2.21.0
方案三:pip方式安装
# 跳过卸载requests模块操作
sudo pip install --ignore-installed requests
# 安装docker-compose
pip install docker-compose
验证 docker-compose 是否安装成功
docker-compose -v
# 出现版本号即为安装成功
# docker-compose version 1.26.2, build unknown
# docker-py version: 4.4.4
# CPython version: 2.7.5
# OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
数据库使用 MySQL,数据库名、用户名和密码可自定义,密码建议随机。
Halo 2.9 可用的 Docker 镜像:halohub/halo
、ghcr.io/halo-dev/halo
Halo 文档:目前 Halo 2 并未更新 Docker 的 latest 标签镜像,主要因为 Halo 2 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如
halohub/halo:2.9
或者halohub/halo:2.9.0
。
创建文件夹(Halo 数据根目录)
mkdir ~/halo && cd ~/halo
创建 docker-compose.yaml
vim docker-compose.yaml
# “i” 进入编辑模式
# “esc” 退出编辑模式
# :wq 保存并退出vim编辑器
编辑 docker-compose.yaml
将 3.1 创建的 MySQL 数据库名、用户名和密码填入,其它项谨慎修改
version: "3" services: halo: image: halohub/halo:2.9 container_name: halo restart: on-failure:3 network_mode: "host" volumes: - ./:/root/.halo2 command: # 修改为自己已有的 MySQL 配置 - --spring.r2dbc.url=r2dbc:pool:mysql://localhost:3306/数据库名 - --spring.r2dbc.username=用户名 - --spring.r2dbc.password=密码 - --spring.sql.init.platform=mysql # 外部访问地址,请根据实际需要修改 - --halo.external-url=http://localhost:8090/ # 端口号 默认8090 - --server.port=8090
启动docker-compose
docker-compose up -d
检查 Halo 镜像运行状态
docker ps
# 出现halo即为成功
如果没有域名,可以先暂时跳过。
域名解析
前往域名控制台解析一条新的记录。
主机记录:访问站点域名的二级域名,比如 blog.xxxx.com,那么主机记录就为 blog
记录类型:选择“A”,将域名指向一个 IPv4 地址
记录值:填写服务器 IP 地址
其他默认即可
Nginx 反向代理
配置nginx.conf
文件
在nginx.conf
文件中添加如下内容。
server { # 监听80端口 listen 80; listen [::]:80; # 接口的域名,用来访问 server_name 域名; # 限制请求体的大小 client_max_body_size 1024m; location / { # 设置服务器地址 proxy_pass http://127.0.0.1:8090; # 设定被代理服务器接收到的header信息,重定义发往后端服务器的请求头 proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
重启 Nginx 服务,重载配置和重启分别点一下。
docker-compose up -d
放行 8090 端口,用浏览器访问域名/console
或者IP:8090/console
,进入初始化页面,初始化后进入 Halo 管理页面。
效果预览(使用Dream for Halo 2.x
主题,预览图仅供参考):
侧边栏“设置”中包含:
侧边栏“应用市场”安装及启用:
创建菜单(侧边栏“菜单”,选择在主菜单中新建):
名称 | 链接地址 | 备注 |
---|---|---|
首页 | / | 无 |
归档 | /archives | 同主题路由设置中归档页路由前缀相同 |
分类 | /categories | 同主题路由设置中分类页路由前缀相同 |
标签 | /tags | 同主题路由设置中标签页路由前缀相同 |
动态 | /moments | 使用插件“瞬间” |
相册 | /photos | 使用插件“图库管理” |
友链 | /links | 使用插件“链接管理” |
关于 | /about | 在侧边栏“页面”中新建页面,别名为 about |
侧边栏“主题(Dream for Halo 2.x)”中包含:
侧边栏模板类型 | 模块位置 | 备注 |
---|---|---|
信息模块 | 左侧(1) | 1. 信息显示不正常检查基础信息中作者用户名是否正确;2. 彩字停顿检查当前用户详情中描述是否填写 |
音乐模块 | 左侧(2) | 简单配置填写网易云歌单 ID 即可,获取方法:网易云音乐歌单链接中一串数字 |
最近文章模块 | 左侧(3) | 无 |
公告模块 | 右侧(1) | 无 |
目录模块 | 右侧(2) | 目录仅在文章详情页显示 |
广告模块 | 右侧(3) | 无 |
文章分类模块 | 右侧(4) | 无 |
文章标签模块 | 右侧(5) | 无 |
提供一份页面“关于”的通用模板:
# 个人信息 - 昵称: - Gitee: - GitHub: - Bilibili: # 联系方式 - Email: - WeChat: - QQ: # 网站信息 - 建站时间: - 运行环境: - 博客系统: - 维护日志:
本文侧重在 Halo 博客的部署和使用上,简化了 Docker、Nginx 等在技术上的解释说明。Halo 部署难度不大,难度大的是坚持更新博客,让我们共同努力,致敬每一位还在写博客的你!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。