Halo [ˈheɪloʊ],一款现代化的开源博客/CMS系统,值得一试
官方网站:Halo
官方文档:Halo Documents
Github:halo-dev/halo: ✍ 一款现代化的开源博客 / CMS 系统。 (github.com)
5.1 环境准备
目前运行 Halo 的最低依赖要求为 JRE 11,请务必确保在进行下面操作之前已经正确安装了 JRE
目前介绍两种 Linux 发行版的安装方式,均为 OpenJRE,不推荐 Oracle 版本
CentOS
# 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)
Ubuntu
# 1. 安装JDK
[rengang@ubuntu1804 ~]$sudo apt-get install openjdk-11-jre -y
# 2. 检查版本
[rengang@ubuntu1804 ~]$java -version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.18.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.18.04.1, mixed mode, sharing)
5.2 安装部署
(1)创建系统用户
不推荐直接使用系统 root 用户来运行 Halo。如果需要直接使用 root 用户,请跳过这一步。
# 1. 创建halo用户(名字可以随意)
[root@centos ~]#useradd -m halo
# 2. 给予sudo权限
[root@centos ~]#usermod -aG wheel halo
# 3. 创建密码
[root@centos ~]#passwd halo
# 4. 切换到halo用户
[root@centos ~]#su - halo
(2)部署Halo
# 1. 创建存放目录
[halo@centos ~]$mkdir ~/app && cd ~/app
# 2. 下载运行包
[halo@centos app]$wget -O halo.jar https://github.com/halo-dev/halo/releases/download/v1.5.4/halo-1.5.4.jar
# 3. 创建工作目录
[halo@centos ~]$mkdir ~/.halo && cd ~/.halo
# 4. 下载示例配置文件到 工作目录
[halo@centos .halo]$wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
# 5. 编辑配置文件,配置数据库或者端口
[halo@centos .halo]$vim application.yaml
# 6. 测试运行Halo
[halo@centos ~]$cd ~/app && java -jar halo.jar
# 7. 如看到类似以下日志输出,则代表启动成功
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!
配置文件说明:配置参考 | Halo Documents
打开 http://ip:端口号
即可看到安装引导界面
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。
如果通过
http://ip: 端口号
的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组
5.3 服务方式运行
如下操作请退出halo账户,登录到root账户
(1)下载官方模板
[root@centos ~]#wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
(2)配置service文件
- Halo_PATH:Halo 运行包的绝对路径,例如
/home/halo/app/halo.jar
,注意:此路径不支持~
符号 - USER:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可
[root@centos ~]#cat /etc/systemd/system/halo.service
[Unit]
Description=Halo Service
Documentation=https://docs.halo.run
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=halo
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar /home/halo/app/halo.jar
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog
StandError=inherit
[Install]
WantedBy=multi-user.target
请确保
/usr/bin/java
是正确无误的。建议将ExecStart
中的命令复制出来运行一下,保证命令有效。
(3)启动Halo服务
# 1. 重新加载systemd
[root@centos ~]#systemctl daemon-reload
# 2. 运行服务
[root@centos ~]#systemctl start halo.service
# 3. 开机自启
[root@centos ~]#systemctl enable halo.service
# 4. 查看服务日志检查启动状态
[root@centos ~]#journalctl -n 20 -u halo
5.4 反向代理
(1)配置nginx
# 1. 安装nginx
[root@centos ~]#yum install -y nginx
# 2. 编辑配置文件
[root@centos ~]#cat /etc/nginx/conf.d/halo.conf
upstream halo {
server 127.0.0.1:8090;
}
server {
listen 80;
listen [::]:80;
server_name halo.rengang.org;
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;
}
}
# 3. 启动nginx
[root@centos ~]#systemctl start nginx
(2)访问测试
直接使用http://halo.rengang.org域名访问,无须添加端口信息