前言

因为服务器被我重置了,需要重新安装一次halo;所以以下是在全新系统中进行操作

环境:

centos 7.9

连接工具:

xshell

步骤

1. 安装JRE

写这篇文章是,最新halo版本要求JRE版本为11,故我们安装JRE11

yum install java-11-openjdk -y

检查版本

java -version

无问题进行下一步

2. 安装halo

这里我没有新建用户,直接用的root用户

2.1 创建存储安装包目录
mkdir ~/app && cd ~/app
2.2 下载运行包
wget https://dl.halo.run/release/halo-1.4.3.jar -O halo.jar
2.3 创建工作目录
mkdir ~/.halo && cd ~/.halo
2.4 下载示例配置文件到工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
2.5 编辑配置文件
vim application.yaml

以下是我的配置
我用的mql远程数据库

server:
  port: 8090

  # Response data gzip.
  compression:
    enabled: false
spring:
  datasource:

    # H2 database configuration.
#    driver-class-name: org.h2.Driver
#    url: jdbc:h2:file:~/.halo/db/halo
#    username: admin
#    password: 123456

    # MySQL database configuration.
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://rm.mysql.rds.aliyuncs.com/halo # 数据库地/数据库名
    username: root # 数据库用户名
    password: xxxx # 数据库密码

  # H2 database console configuration.
#  h2:
#    console:
#      settings:
#        web-allow-others: false
#      path: /h2-console
#      enabled: false

halo:

  # Your admin client path is https://your-domain/{admin-path}
  admin-path: admin

  # memory or level
  cache: memory

2.6 运行halo
cd ~/app && 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!

然后打开 http://ip:端口号 即可开始进入安装引导界面,如果不能进入页面,检查服务器8090端口是否开放

3. 作为服务运行halo

3.1 下载halo官方service模板
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
3.2 修改service模板
vim /etc/systemd/system/halo.service

以下为我的配置

Description=Halo Service
Documentation=https://docs.halo.run
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
# User=USER # 如果照我的步骤则删除该行
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar /root/app/halo.jar # 到halo运行包路径
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog

StandError=inherit

[Install]
WantedBy=multi-user.target

验证 命令路径即ExecStart
/usr/bin/java -server -Xms256m -Xmx256m -jar /root/app/halo.jar

3.3 重新加载 systemd
systemctl daemon-reload
3.4 运行服务
systemctl start halo
3.5 在系统启动时启动服务
systemctl enable halo
[可选] 查看日志
journalctl -n 20 -u halo

4. 安装配置nginx

以下也配置了ssl证书

4.1 安装nginx
sudo yum -y install nginx
4.2 证书上传[可选]
  1. 下载rz
yum -y install lrzsz
  1. 到nginx配置目录
cd /etc/nginx
  1. 创建 ssl证书目录
mkdir ssl && cd ssl
  1. 选择证书文件上传
rz
4.3 配置nginx
  1. 编辑nginx
vim /etc/nginx/nginx.conf
  1. 修改配置项
    以下是我的配置,仅供参考 lijiakai.cn 请换成自己的域名
client_max_body_size 1024m;
upstream halo {
	server 127.0.0.1:8090;
}
server {
	#SSL 监听80和443
	listen 80;
	server_name lijiakai.cn;
	if ($scheme != https) {  return 301 https://lijiakai.cn$request_uri;  }  
}
server{
	listen 443 ssl; 
	#填写绑定证书的域名
	server_name lijiakai.cn; 
	#证书文件名称
	ssl_certificate /etc/nginx/ssl/xxx.pem; # 证书文件路径,此路径仅供参考,具体请您按照实际目录操作
	#私钥文件名称
	ssl_certificate_key /etc/nginx/ssl/xxx.key; # 私钥文件路径,此路径仅供参考,具体请您按照实际目录操作
	ssl_session_timeout 5m;
	#请按照以下协议配置
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
	#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
	ssl_prefer_server_ciphers on;
	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;	
     	}
}
4.4 启动nginx

1.设置开机启动

sudo systemctl enable nginx

2.启动nginx

sudo service nginx start

以下是nginx 服务 命令

sudo systemctl enable nginx # 设置开机启动 
sudo service nginx start # 启动 nginx 服务
sudo service nginx stop # 停止 nginx 服务
sudo service nginx restart # 重启 nginx 服务
sudo service nginx reload # 重新加载配置,一般是在修改过 nginx 配置文件时使用。
4.5 配置halo后台

进入 系统/博客设置/常规设置
将 博客地址改为 自己的网站 如:

https://lijiakai.cn

配置ssl证书的一定要为https,不然页面样式会丢失

结语

希望大家能配置成功

Q.E.D.