环境准备
1、安装jdk11
目前运行 Halo 的最低依赖要求为 JRE 11,因此先安装jdk11
# 1. 安装JDK
[root@centos ~]#sudo yum install java-11-openjdk -y
# 2. 检查版本
[root@centos ~]#java -version
openjdk version "11.0.15" 2022-04-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.15+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.15+9-LTS, mixed mode, sharing)
2、安装docker
1、查看目前系统版本,lsb_release -a 我目前系统的版本是CentOS 8.5.2111
2、首次安装docker时需检查linux环境的内核版本,root登录时,uname -r可查看
3、检查是否已安装过docker,docker -version
4、centos8默认使用podman代替docker,所以需要containerd.io,那我们就安装一下就好了
执行命令:yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
首次安装docker,这步我是直接成功了没有任何报错。
5、安装其他依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6、执行安装docker, yum install docker-ce
7、查看docker是否安装成功,docker -v
8、启动docker,systemctl start docker
9、测试docker实例,拉取hello-world镜像,docker pull hello-world
10、启动镜像,docker run hello-world
看到以上提示说明启动成功。
3、docker安装mysql
1、查看mysql镜像,docker search mysql
2、拉取最新镜像,docker pull mysql:latest
3、查看镜像是否拉取成功,docker images | grep mysql
4、启动mysql容器
启动命令解析:
我这里启动时只设置数据库访问root密码: docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql
5、查看当前正在运行的容器,docker ps
6、进入mysql容器,docker exec -it mysql bash
7、连接mysql数据库,mysql -u root -p
8、查看当前数据库
经过以上步骤,说明docker成功安装并启动了mysql。
使用docker搭建halo
1、拉取最新的halo镜像
docker pull halohub/halo
2、创建工作目录:mkdir -p /usr/soft/halo && cd /usr/soft/halo
3、下载示例配置文件到 工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
4、编辑配置文件,配置数据库或者端口等,如需配置请参考 配置参考
vim application.yaml
我修改的配置文件:
server:
port: 8090
# Response data gzip.
compression:
enabled: true
spring:
jpa:
database-platform: org.hibernate.dialect.MySQLDialect
datasource:
# H2 database configuration.
# driver-class-name: org.h2.Driver
#url: jdbc:h2:file:~/.halo/db/halo
#username: admin
#password: 123456
# MySQL database configuration.
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://xx.xxx.xx.xx:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: root
# H2 database console configuration.
h2:
console:
settings:
web-allow-others: false
path: /h2-console
enabled: false
halo:
# Your admin client path is https://your-domain/{admin-path}
admin-path: admin
# memory or level
cache: memory
5、启动halo容器
docker run -it -d --name halo -p 8090:8090 -v /usr/soft/halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.4
6、查看容器是否启动成功
docker ps
7、查看日志文件容器启动是否有报错:
tail logs/spring.log
没有任何异常日志说明启动成功,可以正常访问。
8、输入http://公网ip:8090或者http://公网ip:8090/admin即可访问。
至此,halo博客搭建完成。要配置域名访问继续往下看。
9、配置nginx动态代理实现域名访问(nginx安装步骤参考:https://blog.csdn.net/qq_39946015/article/details/128119147)
进入nginx配置文件目录,配置域名和反向代理。
server {
listen 80;
listen [::]:80;
#server_name localhost;
server_name www.yonmei.xyz;
#access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://xx.xxx.xx.xx:8090/;
}
.......
重启nginx之后,即可直接通过域名访问博客网站。