资源栈 - www.zyz88.com

Halo建站教程:国产Java博客系统安装指南

admin
2026-09-12 2 阅读 0 评论 0 点赞

Halo是一款国产开源的Java博客系统/CMS,以GPL-3.0协议开源。Halo诞生于2018年,以现代化的界面设计、优秀的性能、丰富的插件和主题生态著称。Halo采用Spring Boot + Vue技术栈,前后端分离,支持Markdown编辑、静态化、多用户、评论系统、附件管理等功能,适合个人博客、技术博客、小型企业官网、内容发布平台。Halo是目前国内最受欢迎的Java博客系统,GitHub星数超过3万。

核心优势:界面现代美观、性能出色(Java + Spring Boot)、Markdown编辑器体验好、插件主题生态丰富、支持静态化部署、REST API、Docker一键部署、多用户支持、SEO友好、国内社区活跃、完全开源免费。Halo特别适合Java开发者和追求现代感的博客用户。

本文目录

环境要求

  • 操作系统:Linux(Ubuntu/Debian/CentOS)、Windows、macOS
  • Java版本:JDK 17+(Halo 2.x推荐JDK 17)
  • 数据库:MySQL 8.0+ / PostgreSQL 12+ / H2(内置,仅用于测试)
  • 内存:最低512MB,推荐1GB以上(Java应用建议2GB)
  • 磁盘:至少500MB可用空间
  • Web服务器:Nginx(用于反向代理,可选)
  • Docker:可选,推荐使用Docker部署

安装教程

方式一:Docker部署(推荐)

步骤1:安装Docker和Docker Compose

curl -fsSL https://get.docker.com | bash
systemctl enable docker
systemctl start docker
docker --version
docker compose version

步骤2:创建docker-compose.yml

mkdir -p /opt/halo
cd /opt/halo
cat > docker-compose.yml << 'EOF'
version: "3.8"
services:
  halo:
    image: halohub/halo:2.x
    container_name: halo
    restart: unless-stopped
    volumes:
      - ./data:/root/.halo2
    ports:
      - "8090:8090"
    environment:
      - SERVER_PORT=8090
      - SPRING_R2DBC_URL=r2dbc:pool:mysql://mysql:3306/halo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
      - SPRING_R2DBC_USERNAME=halo
      - SPRING_R2DBC_PASSWORD=your_strong_password
      - SPRING_SQL_INIT_PLATFORM=mysql
    depends_on:
      - mysql
  mysql:
    image: mysql:8.0
    container_name: halo-mysql
    restart: unless-stopped
    volumes:
      - ./mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=your_root_password
      - MYSQL_DATABASE=halo
      - MYSQL_USER=halo
      - MYSQL_PASSWORD=your_strong_password
    command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
EOF

步骤3:启动Halo

docker compose up -d
docker compose ps

方式二:直接部署(JAR包)

步骤1:安装JDK 17

apt install -y openjdk-17-jre
java -version

步骤2:下载Halo

mkdir -p /opt/halo
cd /opt/halo
wget https://github.com/halo-dev/halo/releases/download/v2.16.0/halo-2.16.0.jar

步骤3:创建配置文件

mkdir -p /root/.halo2
cat > /root/.halo2/application.yaml << 'EOF'
server:
  port: 8090
spring:
  r2dbc:
    url: r2dbc:pool:mysql://localhost:3306/halo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
    username: halo
    password: your_strong_password
  sql:
    init:
      platform: mysql
EOF

步骤4:创建systemd服务

cat > /etc/systemd/system/halo.service << 'EOF'
[Unit]
Description=Halo Blog
After=network.target mysql.service

[Service]
Type=simple
User=root
WorkingDirectory=/opt/halo
ExecStart=/usr/bin/java -jar /opt/halo/halo-2.16.0.jar
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable halo
systemctl start halo
systemctl status halo

步骤5:Nginx反向代理配置

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8090;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
        proxy_pass http://127.0.0.1:8090;
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}

步骤6:完成安装向导

浏览器访问 http://yourdomain.com,进入初始化页面:

  1. 设置管理员账号(用户名、邮箱、密码)
  2. 设置网站标题和描述
  3. 点击"初始化"完成安装

后台地址为 http://yourdomain.com/console。Halo后台功能包括:文章管理、页面管理、分类标签、评论管理、附件管理、主题设置、插件管理、用户管理、系统设置等。

Windows环境安装

Windows下安装步骤:

  1. 从Oracle官网或OpenJDK下载JDK 17安装包,双击安装
  2. 配置环境变量:JAVA_HOME指向JDK安装目录,Path添加%JAVA_HOME%\bin
  3. 打开命令提示符验证:java -version
  4. 下载程序JAR包,在命令行中执行java -jar 程序名.jar启动
  5. 浏览器访问http://localhost:8090完成初始化

宝塔面板部署

宝塔面板支持Java项目部署:

  1. 安装宝塔面板(参考PHP类安装命令)
  2. 在宝塔面板 → 软件商店中安装"Java项目管理器"
  3. 通过Java项目管理器安装JDK 17
  4. 点击"网站" → "添加Java项目",填写项目名称、JAR包路径、JVM参数、端口
  5. 将JAR包和配置文件上传到指定目录
  6. 在项目设置中配置数据库连接等环境变量
  7. 配置Nginx反向代理,将域名指向Java应用端口
  8. 启动Java项目,设置开机自启

服务器配置建议

  • 内存:建议2GB以上,Java应用内存占用较高
  • JVM参数:可设置-Xms512m -Xmx1024m控制内存使用
  • MySQL:使用MySQL 8.0,配置innodb_buffer_pool_size=256M
  • Nginx:启用gzip压缩,配置静态资源缓存
  • 定期更新:关注Halo官方发布,及时升级到最新版本
  • 定期备份:备份MySQL数据库和Halo数据目录(~/.halo2)
  • 配置CDN加速静态资源和附件
  • 生产环境使用MySQL,不要使用H2数据库

常见问题

Q:Halo启动失败,提示内存不足?
A:Java应用需要足够内存。建议服务器内存1GB以上,可创建swap分区:fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile

Q:Docker部署后无法访问?
A:检查容器是否正常运行:docker compose ps,查看日志:docker compose logs halo。确认端口8090已开放,Nginx配置正确。

Q:如何安装Halo主题?
A:后台 → 外观 → 主题 → 安装主题,上传主题zip包。或从主题市场下载后解压到~/.halo2/themes目录。

Q:忘记管理员密码怎么办?
A:数据库执行:UPDATE users SET password='{bcrypt}$2a$10$...' WHERE username='admin';。或使用Halo提供的密码重置工具,具体参考官方文档。

Q:Halo和WordPress怎么选?
A:追求现代界面、Java技术栈、轻量快速选Halo;需要丰富插件、电商、多功能选WordPress。个人博客和技术博客推荐Halo,综合型网站推荐WordPress。

官方网址

官方网站:https://halo.run

下载地址:https://halo.run/download

官方文档:https://docs.halo.run

主题市场:https://halo.run/themes

插件市场:https://halo.run/plugins

GitHub:https://github.com/halo-dev/halo

社区论坛:https://bbs.halo.run

文章标题 Halo建站教程:国产Java博客系统安装指南
本文由 资源栈 原创发布,转载请注明出处并保留原文链接。