Linux 部署 Halo 博客

从 1.4.3 开始,Halo 最低支持的 JRE 版本为 11,在升级前,请务必先升级 JRE。
如果当前您不方便升级到 11,我们推荐使用 Docker 运行新版 Halo,从 Jar 包的方式迁移到 Docker 运行非常方便,按照指南在创建容器的时候将容器内的 /root/.halo 目录映射到当前 Halo 的工作目录即可。

JDK 11 下载

image.png

image.png

安装 JDK

下载 Halo

# wget https://dl.halo.run/release/halo-1.4.8.jar -O halo.jar

启动服务

# java -jar halo.jar
  • 如看到类似以下日志输出,则代表启动成功
run.halo.app.listener.StartedListener    : Halo started at         http://127.0.0.1:8090
run.halo.app.listener.StartedListener    : Halo admin started at   http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener    : Halo has started successfully!
  • 后台启动 - 推荐
# nohup java -jar halo.jar > halo_log.log 2>&1 &

防火墙配置

# 开启防火墙
# systemctl start firewalld
# 开放http端口
# firewall-cmd --zone=public --add-port=80/tcp --permanent
# 开放MySQL端口
# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 开放https端口
# firewall-cmd --zone=public --add-port=443/tcp --permanent
# 开放Tomcat端口
# firewall-cmd --zone=public --add-port=8090/tcp --permanent
# 立即生效
# firewall-cmd --reload
# 查看已开放的端口号
# firewall-cmd --list-ports

访问

  • 浏览器访问 http://ip:端口号 即可看到安装引导界面
  • 例:
http://192.168.10.15:8090

image.png

  • 初始化后,登录后台管理页面

image.png

  • 部署完成,开始使用吧~

image.png

反向代理

  • Nginx
upstream halo {
  server 127.0.0.1:8090;
}
server {
  listen 80;
  listen [::]:80;
  server_name cnxiaobai.com;
  client_max_body_size 1024m;
  location / {
    proxy_pass http://halo;
    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;
  }
}

工作目录

  指 Halo 所依赖的工作目录,在 Halo 运行的时候会在系统当前用户目录下产生一个 .halo 的文件夹,绝对路径为 ~/.halo。由于这个工作目录是固定的,所以上面所说的 运行包不限制所存放的位置,里面通常包含下列目录或文件:

  • db:存放 H2 Database 的物理文件,如果您使用 MySQL 数据库,那么不会存在这个目录。
  • templates/themes:里面包含用户所下载的主题
  • static:相当于网站的根目录
  • logs:运行日志目录
  • upload:附件目录
  • application.yaml:配置文件

MySQL(可选)

  这并不是 Halo 必须依赖的,Halo 默认使用自带的 H2 Database,无需单独安装。如果 H2 Database 不能满足你的要求,您需要在系统内安装并运行好 MySQL。
具体要求:

  1. 版本:5.7 +
  2. 字符集(Character Set):utf8mb4
  3. 排序规则(Collate):utf8mb4_bin
  4. 存储引擎:InnoDB

综上,建议创建数据库采用下面的命令:

mysql> create database halodb character set utf8mb4 collate utf8mb4_bin;
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    username: root
    password: 123456

注意事项

  • usernamepassword 需要修改为您的 MySQL 数据库账号和密码。
  • 默认时区为 Asia/Shanghai,如果与您所在时区不一致,则可以修改为您所在的时区。

相关链接


标题:Linux 部署 Halo 博客
作者:Mune
地址:https://cnxiaobai.com/articles/2021/04/27/1619517410858.html

    评论
    0 评论
avatar

取消