Halo Documents使用说明-关于本站迁移更新

简介

Halo [ˈheɪloʊ],一款现代化的开源博客/CMS系统,值得一试。

快速开始

Jar运行

下载最新的 Halo 运行包:

curl -L https://github.com/halo-dev/halo/releases/download/v1.5.4/halo-1.5.4.jar --output halo.jar

其他地址:https://docs.halo.run/getting-started/downloads

java -jar halo.jar

Docker

docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=always halohub/halo:1.5.4

详细部署文档请查阅:https://docs.halo.run/getting-started/install/linux

在线体验

生态

项目 状态 描述
halo-admin v1.5.4 Web 管理端 UI,已内置在主应用
js-sdk v1.1.0 JavaScript SDK
halo-comment v1.3.2 独立评论组件,可以非常方便的集成到主题中
halo-comment-normal v1.5.0 另外一款评论组件
halo-mobile-app 已停止维护 移动端app
tencent-cloudbase-halo 腾讯云 CloudBase 一键部署配置
halo-theme-* GitHub 上开源的 Halo 主题集合

许可证

Halo 使用 GPL-v3.0 协议开源,请遵守开源协议。

入门(v1.5.4)

写在前面

  • 环境要求

这里将讲述运行 Halo 所要求的一些软硬件的配置,我们建议您在运行或者部署之前先浏览一遍此页面。

  • 硬件配置

如果您要使用服务器进行部署 Halo,您需要注意的是,Halo 目前不支持市面上的云虚拟主机,请使用云服务器或者 VPS。

  • CPU

无特别要求。目前我们的 Docker 镜像 也已经支持多平台。

  • 内存

为了获得更好的体验,我们建议至少配置 1G 的 RAM。

  • 磁盘

无特别要求,理论上如果不大量在服务器上传附件,Halo 对磁盘的容量要求并不是很高。但我们推荐最好使用 SSD 硬盘的服务器,能更快的运行 Halo。

  • 网络

Halo 目前必须在外网畅通的情况下使用,否则会导致页面异常。

  • 软件环境

Halo 理论上可以运行在任何支持 Java 的平台。

  • JRE(Java Runtime Environment)

必须在运行环境安装好 JRE,这是运行 Halo 所要求的的最低软件环境要求。如果您使用 Docker 运行 Halo,可忽略此要求。

从 1.4.3 起,版本要求为 11 以上的版本。1.4.3 以下需要 1.8 以上的版本。

  • MySQL(可选)

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

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

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

create database halodb character set utf8mb4 collate utf8mb4_bin;
  • Web 服务器(可选)
    如果您部署在生产环境,那么你很可能需要进行域名绑定,这时候我们推荐使用诸如 Nginx、Caddy 之类的 Web 服务器进行反向代理。

  • Wget(可选)
    后续的文档中,我们会使用 wget 为例,用于下载所需要的文件,所以请确保服务器已经安装好了这个软件包。当然,下载文件不限制工具,如果你对其他工具熟悉,可以忽略。

  • VIM(可选)
    后续的文档中,我们会使用 vim 为例,用于修改一些必要的配置文件,所以同样请确保服务器已经安装了这个软件包。当前,修改文档也不限制工具,如果你对其他编辑软件熟悉,也可以忽略。

  • 浏览器支持
    用户前台:视主题所支持的情况而定,由于目前的评论模块使用了 Vuejs 开发,所以在 Vuejs 不支持的某些浏览器中无法正常显示评论区域。
    管理后台:支持目前常见的现代浏览器,具体视 Vuejs 框架的支持情况而定。

  • 运行包
    指 Halo 构建所产生的 Jar 包,后缀为 .jar。可能与其他网站应用有所区别的是,Halo 仅仅只有这一个文件。而且所有数据统一保存在下面所说的 工作目录。

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

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

安装指南

在 Linux 环境部署

  • 依赖检查

目前运行 Halo 的最低依赖要求为 JRE 11,请务必确保在进行下面操作之前已经正确安装了 JRE。

目前介绍两种 Linux 发行版的安装方式,均为 OpenJRE,不推荐 Oracle 版本。

  • CentOS
sudo yum install java-11-openjdk -y

检查版本:

java -version

如果输出以下类似内容即代表成功

openjdk version "11.0.10" 2021-01-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode, sharing)
  • Ubuntu
sudo apt-get install openjdk-11-jre -y

检查版本:

java -version

如果输出以下类似内容即代表成功

openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment (build 11.0.10+9-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.10+9-Ubuntu-0ubuntu1.20.04, mixed mode)
  • 安装
  1. 创建新的系统用户

我们不推荐直接使用系统 root 用户来运行 Halo。如果您需要直接使用 root 用户,请跳过这一步。

创建一个名为 halo 的用户(名字可以随意)

useradd -m halo

给予 sudo 权限

usermod -aG wheel halo

为 halo 用户创建密码

passwd halo

登录到 halo 账户

su - halo
  1. 创建存放 运行包 的目录,这里以 ~/app 为例
mkdir ~/app && cd ~/app
  1. 下载运行包
wget https://dl.halo.run/release/halo-1.5.4.jar -O halo.jar

如果下载速度不理想,可以 在这里 选择其他下载地址。

  1. 创建 工作目录
mkdir ~/.halo && cd ~/.halo
  1. 下载示例配置文件到 工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml 
  1. 编辑配置文件,配置数据库或者端口等,如需配置请参考 配置参考
vim application.yaml
  1. 测试运行 Halo
cd ~/app && java -jar halo.jar
  1. 如看到类似以下日志输出,则代表启动成功。
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!

打开 http://ip:端口号 即可看到安装引导界面。

如测试启动正常,请继续看作为服务运行部分,第 8 步仅仅作为测试。当你关闭 ssh 连接之后,服务会停止。你可使用 CTRL+C 停止运行测试进程。

如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 http://ip: 端口号 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。

作为服务运行

  1. 退出 halo 账户,登录到 root 账户
    如果当前就是 root 账户,请略过此步骤。
exit
  1. 下载 Halo 官方的 halo.service 模板
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
  1. 修改 halo.service
vim /etc/systemd/system/halo.service
  1. 修改配置
    YOUR_JAR_PATH:Halo 运行包的绝对路径,例如 /home/halo/app/halo.jar,注意:此路径不支持 ~ 符号。
    USER:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可。反之请删除 User=USER
[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=USER
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar YOUR_JAR_PATH
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog

StandError=inherit

[Install]
WantedBy=multi-user.target

请确保 /usr/bin/java 是正确无误的。建议将 ExecStart 中的命令复制出来运行一下,保证命令有效。

  1. 重新加载 systemd
systemctl daemon-reload
  1. 运行服务
systemctl start halo
  1. 在系统启动时启动服务
systemctl enable halo

您可以查看服务日志检查启动状态

journalctl -n 20 -u halo
  • 反向代理
    你可以在下面的反向代理软件中任选一项,我们假设你已经安装好了其中一项,并对其基本操作有一定了解。如果你对 Nginx 不熟悉,我们推荐使用 OneinStack 来管理 Nginx。

Nginx

upstream halo {
  server 127.0.0.1:8090;
}
server {
  listen 80;
  listen [::]:80;
  server_name www.yourdomain.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;
  }
}

注意:Nginx 默认的 client_max_body_size 配置大小为 1m,可能会导致你在 Halo 后台上传文件被 Nginx 限制,所以此示例配置文件加上了 client_max_body_size 1024m; 这行配置。当然,1024m 可根据你的需要自行修改。

Caddy 1.x

https://www.yourdomain.com {
 gzip
 tls your@email.com
 proxy / localhost:8090 {
  transparent
 }
}

Caddy 2.x

www.yourdomain.com

encode gzip

reverse_proxy 127.0.0.1:8090

以上配置都可以在 https://github.com/halo-dev/halo-common 找到。

使用 Docker 部署 Halo

  • 使用 Docker 镜像
    Halo 在 Docker Hub 上发布的镜像为 halohub/halo
  1. 创建 工作目录
mkdir ~/.halo && cd ~/.halo
  1. 下载示例配置文件到 工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
  1. 编辑配置文件,配置数据库或者端口等,如需配置请参考 配置参考
vim application.yaml
  1. 拉取最新的 Halo 镜像
docker pull halohub/halo:1.5.4

查看最新版本镜像:https://hub.docker.com/r/halohub/halo ,我们推荐使用具体版本号的镜像,但也提供了 latest 标签的镜像,它始终是最新的。

  1. 创建容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.4

注意:此命令默认使用自带的 H2 Database 数据库。如需使用 MySQL

用户指南

开发者指南

posted @ 2022-11-17 11:10  满心heo  阅读(201)  评论(0)    收藏  举报