Halo-Plus个人博客(本博客)从零搭建教程及疑难问题

前提:这不是一篇最基础的博客教程,如果你曾经建过博客,那么你将完全理解本文章,如果你是一个刚入坑的萌新,也要对linux命令有一定了解,如vim。

部署方式:操作系统:Centos7

  1. 购买一款云服务器和一个相中的域名
  2. 初始化云服务器后,成功通过SSH远程登陆服务器,推荐软件Xshell7。通过Xshell7远程操纵服务器
  3. 安装Halo-Plus 的最低依赖要求 JRE 11:
sudo yum install java-11-openjdk -y
  1. 检查版本:
java -version
  1. 如果输出以下类似内容即代表成功
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)
  1. 创建新的系统用户(直接使用root用户意外对服务器造成的损伤是大的,所以此处新建一个halo-plus用户)
useradd -m halo-plus
  1. 给予 sudo 权限
usermod -aG wheel halo-plus
  1. 为 halo-plus 用户创建密码
passwd halo-plus
  1. 登录到 halo-plus 账户
su - halo-plus
  1. **创建存放 **运行包 的目录,这里以 ~/app 为例
mkdir ~/app && cd ~/app
  1. 下载运行包
// 国外服务器可选择第一个
wget https://github.com/nineya/halo-plus/releases/download/1.1.4/halo-plus-1.1.4.jar -O halo-plus.jar 
// 如果是国内服务器,速度比较慢,可以用下面的链接,也可以先下载到本地,然后在宝塔上,从本机传输到对应的文件夹下面
wget http://api.niuwh.cn/blog_hub/halo-plus.jar -O halo-plus.jar // 用的自己服务器,大家轻点薅
  1. 创建 工作目录
mkdir ~/.halo-plus && cd ~/.halo-plus
  1. 下载示例配置文件到 工作目录
wget  http://api.niuwh.cn/blog_hub/application.yaml -O ./application.yaml 
  1. **编辑配置文件,配置数据库或者端口等,如需配置请参考 配置参考
vim application.yaml
  1. 测试运行 Halo-Plus
cd ~/app && java -jar halo-plus.jar
  1. 如看到类似以下日志输出,则代表启动成功
run.halo.app.listener.StartedListener    : Halo-Plus started at         http://127.0.0.1:8090
run.halo.app.listener.StartedListener    : Halo-Plus admin started at   http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener    : Halo-Plus has started successfully!

然后到你的云服务器商那里新增安全组规则8090,再打开 **http://ip:端口号 即可看到安装引导界面。

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

作为服务运行
  1. 退出halo-plus 账户,登录到 root 账户
exit
  1. 下载 Halo-Plus 官方的 halo-plus.service 模板
wget http://api.niuwh.cn/blog_hub/halo-plus.service -O /etc/systemd/system/halo-plus.service

修改配置

  • YOUR_JAR_PATH:Halo-Plus 运行包的绝对路径,例如 /home/halo-plus/app/halo-plus.jar,注意:此路径不支持 ~ 符号。
  • USER:运行 Halo-Plus 的系统用户,如果有按照上方教程创建新的用户来运行 Halo-Plus,修改为你创建的用户名称即可。反之请删除 User=USER

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

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

此时,你已经完成了一大半,剩下就是利用Nginx反向代理,可以用你的你的域名来替代 ip:端口号

当然,国内服务器不备案的话,会拦截你的80端口,所以大家要先备案

  1. 安装宝塔面板
url=https://download.bt.cn/install/install_lts.sh;if [ -f /usr/bin/curl ];then curl -sSO $url;else wget -O install_lts.sh $url;fi;bash install_lts.sh ed8484bec

安装完成后记住宝塔内外网面板地址和账号密码,后面登录宝塔面板会用到

  1. 服务器安全组添加xxxx端口规则,登陆宝塔面板后,下载安装Nginx(宝塔会弹窗提示),或者在宝塔面板里的软件商店里自行下载。
  2. 添加新站点,可按图片操作

Snipaste_2024-11-21_19-11-40

  1. 点击站点,选择左侧配置文件,将下面内容复制进去,点击保存
upstream halo-plus {
  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-plus;
    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;
  }
}

大功告成。

想要安装SSL证书,使用https进行访问?可参考:参考资料3

过程还是相对粗糙的,但是摸索的过程不就是一种学习嘛,欢迎大家指正,完善,评论区见~

参考资料:

  1. https://docs.halo-plus.nineya.com/1.1-SNAPSHOT/getting-started/install/linux
  2. 宝塔Linux面板的安装配置以及基本使用教程(超详细)
  3. https://github-wiki-see.page/m/YuMao233/MCSManager-v8.7/wiki/%E5%85%B3%E4%BA%8E%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF%E7%9A%84-Nginx-%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E4%BB%A5%E5%8F%8ASSL%E8%AF%81%E4%B9%A6%E9%83%A8%E7%BD%B2