个人网站搭建 02——CentOS 7 + Halo 博客搭建

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

依赖检查

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

检查 JRE 版本:

java -version

安装

创建新的系统用户

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

# 创建一个名为 halo 的用户(名字可以随意)
useradd -m halo
# 给予 sudo 权限
usermod -aG wheel halo
# 为 halo 用户创建密码
passwd halo
# 登录到 halo 账户
su - halo

创建存放运行包的目录

这里以 ~/app 为例

mkdir ~/app && cd ~/app

下载运行包

wget https://dl.halo.run/release/halo-1.4.5.jar -O halo.jar

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

创建工作目录

mkdir ~/.halo && cd ~/.halo

下载示例配置文件到工作目录

wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml

编辑配置文件,配置数据库或者端口等,如需配置请参考参考配置

vim application.yaml

测试运行 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 面板是否有还有安全组配置,需要同样将端口号添加到安全组。

作为服务运行

退出 halo 账户,登录到 root 账户

如果当前就是 root 账户,请略过此步骤。

exit

下载 Halo 官方的 halo.service 模板

wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service

修改 halo.service

vim /etc/systemd/system/halo.service

修改配置

  • 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 中的命令复制出来运行一下,保证命令有效。

重新加载 systemd

systemctl daemon-reload

运行服务

systemctl start halo

在系统启动时启动服务

systemctl enable halo

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

journalctl -n 20 -u halo

反向代理

你可以在下面的反向代理软件中任选一项,我们假设你已经安装好了其中一项,并对其基本操作有一定了解。

Nginx

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

Caddy 1.x

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

Caddy 2.x

www.youdomain.com

encode gzip

reverse_proxy 127.0.0.1:8090

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

创建数据库

使用宝塔面板 >> 数据库 >> 添加 MySQL 数据库

记录数据库的用户名和密码

image-20200907162708838

若服务器未使用宝塔面板,请访问 https://blog.csdn.net/qq_34889607/article/details/80616547 查看创建数据库方法

修改配置文件

vim /root/.halo/application.yaml
server:
  port: 8081 # 访问端口为8081
spring:
  datasource:
    type: com.zaxxer.hikari.HikariDataSource

    # H2 Database 配置,如果你需要使用 MySQL,请注释掉该配置并取消注释 MySQL 的配置。
    # driver-class-name: org.h2.Driver
    # url: jdbc:h2:file:~/.halo/db/halo
    # username: admin
    # password: 123456

    # MySQL 配置,如果你需要使用 H2Database,请注释掉该配置并取消注释上方 H2Database 的配置。
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    username: 你的数据库账户
    password: 你的数据库密码

  # H2 Database 的控制台相关配置,如果你使用的是 MySQL ,请注释掉下方内容。
  #h2:
    # console:
      #settings:
        # web-allow-others: false
      #path: /h2-console
      #enabled: false

Nginx 代理

因为我们的配置文件将 Halo 跑到了 8081 端口上,所以,我们要将我们的域名代理到该端口。

如果是宝塔面板默认安装的 Nginx,那么我们要添加配置,只需要在 /www/server/panel/vhost/nginx/ 创建配置文件即可。

宝塔面板默认安装的Nginx的配置文件如下:

include /www/server/panel/vhost/nginx/*.conf;

先在/root/.halo/halo_blog/目录下创建一个文件夹nginx_log用来装Nginx生成的日志。

mkdir /root/.halo/halo_blog/nginx_log

然后我们在/www/server/panel/vhost/nginx/目录下创建{域名}.conf文件。(如 lpxz.xyz.conf

server {
  listen 80;
  server_name lpxz.xyz www.lpxz.xyz; # 域名需要修改
  access_log /root/.halo/halo_blog/nginx_log/halo_blog.nginx.access.log combined; # 需要修改文件路径
  error_log  /root/.halo/halo_blog/nginx_log/halo_blog.nginx.error.log; # 需要修改文件路径
  location / {
    proxy_pass http://127.0.0.1:8081; # 修改端口
  }
}

配置完毕后重启 Nginx重载 Nginx 配置

nginx				# 打开Nginx
nginx -t			# 测试配置文件是否有语法错误
nginx -s reopen		# 重启 Nginx
nginx -s reload		# 重新加载 Nginx 配置文件,然后以优雅的方式重启 Nginx
nginx -s stop  		# 强制停止 Nginx 服务
nginx -s quit  		# 优雅地停止 Nginx 服务(即处理完所有请求后再停止服务)

执行 Jar 包

cd /root/.halo
java -jar halo-latest.jar &

# 查看系统端口占用情况
netstat -ntlp

通过端口访问

在浏览器输入网址 {域名: 端口},(如 lpxz.xyz:8081),首次进入会显示 Halo 博客安装向导,按照提示进行操作即可。

image-20200907165710367
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LP学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值