注:本人为学习linux相关内容故采用jar包方式安装

前置环境安装

前置环境主要包含JDK、MySql、Nginx(可选)

JDK安装

在安装前设置定时更新yum源

yum install yum-cron -y
systemctl enable yum-cron
systemctl start yum-cron

查询可用的jdk,由于halo最低需要17版本,查询出来的只有11及以前的版本所以采用手动安装的方式安装jdk
yum list available | grep java | grep openjdk
sudo yum install java-11-openjdk-devel -y

手动安装jdk

1.下载新版本的jdk上传至服务器

2.创建目录并解压
mkdir -p /opt/jdk
tar -xvzf 某版本jdk.tar.gz -C /opt/jdk

3.配置jdk
sudo vi /etc/profile.d/java.sh

在文件中添加以下内容(具体目录根据安装调整)
export JAVA_HOME=/opt/jdk/jdk-21
export PATH=$JAVA_HOME/bin:$PATH

重新加载并验证
source /etc/profile.d/java.sh
java -version

MySql安装

博主服务器为centos7

1.删除系统默认的mariadb
yum remove mariadb* -y

2.添加官方源
rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-7.noarch.rpm

3.手动刷新下源
sudo yum clean all
sudo yum makecache fast

4.确认启用的是mysql8的源
yum repolist all | grep mysql
需要检查以下两个是否被启用
mysql80-community/x86_64
mysql-connectors-community/x86_64

5.安装
sudo yum install mysql-community-server -y

6.获取临时密码并登录、修改密码

Nginx安装

手动下载nginx并上传到服务器
nginx官方下载地址

1.安装Nginx依赖环境,-y表示所有提示默认选择y
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
yum install -y gcc

2.解压
tar -zxvf nginx-xxx.tar.gz -C /xxx(目录)

3.进入解压后的目录并安装
cd nginx-xxx/
./configure
make
make install

4.启动服务
cd /usr/local/nginx/sbin
./nginx
ps -ef|grep nginx

如需配置ssl需要重新执行安装命令,具体参数百度。
如需配置开机自启等也需额外配置,本文暂不补充。

博客安装

博主的安装方式参考了halo官网的jar部署步骤,具体的配置文件请参考官网,博主的只是示例

halo下载地址

1.创建用户配置密码
useradd -m halo
passwd halo
su - halo

2.创建目录
mkdir ~/abyHalo && cd ~/abyHalo

3.下载运行包
wget https://dl.halo.run/release/halo-2.20.18.jar -O halo.jar

4.创建应用工作目录
mkdir ~/.halo2 && cd ~/.halo2

5.创建配置文件(配置文件见文末)
vim application.yaml

6.测试运行(后台运行在命令前加nohup命令后加&)
cd ~/abyHalo && java -Dfile.encoding=UTF-8 -jar halo.jar --spring.config.additional-location=optional:file:$HOME/.halo2/

项目配置

server:  
  # 运行端口  
  port: 8090  
spring:  
  r2dbc:  
    url: r2dbc:pool:mysql://ip:端口/数据库名  
    username: 用户名  
    password: 密码  
  sql:  
    init:  
      mode: always  
      # 需要配合 r2dbc 的配置进行改动  
      platform: mysql  
halo:  
  # 工作目录位置  
  work-dir: ${user.home}/.halo2  
  # 外部访问地址  
  external-url: http://localhost:8090  
  # 附件映射配置,通常用于迁移场景  
  attachment:  
    resource-mappings:  
      - pathPattern: /upload/**  
        locations:  
          - migrate-from-1.x