阿里云服务器搭建halo博客

环境准备

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博客搭建完成。要配置域名访问继续往下看。

进入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之后,即可直接通过域名访问博客网站。

经验分享 程序员 微信小程序 职场和发展