Linux 部署 Halo 博客
从 1.4.3 开始,Halo 最低支持的 JRE 版本为 11,在升级前,请务必先升级 JRE。
如果当前您不方便升级到 11,我们推荐使用 Docker 运行新版 Halo,从 Jar 包的方式迁移到 Docker 运行非常方便,按照指南在创建容器的时候将容器内的/root/.halo
目录映射到当前 Halo 的工作目录即可。
JDK 11 下载
安装 JDK
- 参考文章 - 🌏 CentOS 7 安装 Java
下载 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
- 初始化后,登录后台管理页面
- 部署完成,开始使用吧~
反向代理
- 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。
具体要求:
- 版本:5.7 +
- 字符集(Character Set):
utf8mb4
- 排序规则(Collate):
utf8mb4_bin
- 存储引擎:
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
注意事项:
username
及password
需要修改为您的 MySQL 数据库账号和密码。- 默认时区为
Asia/Shanghai
,如果与您所在时区不一致,则可以修改为您所在的时区。
相关链接
- 官网:🌏 https://halo.run
- 文档:🌏 https://docs.halo.run
- 社区:🌏 https://bbs.halo.run
- 主题仓库:🌏 https://halo.run/themes.html
- 开源地址:🌏 https://github.com/halo-dev/halo
评论
0 评论