使用阿里云香港轻量云加宝塔面板搭建基于java语言的Halo博客系统教程

本文涉及的产品
.cn 域名,1个 12个月
简介: 使用阿里云香港轻量云加宝塔面板搭建基于java语言的Halo博客系统全教程

前言

Halo 是一款现代化的个人独立博客系统,给习惯写博客的同学多一个选择。

halo博客系统官网地址:https://halo.run

安装教程开始啦:

首先需要有一台服务器,可以在阿里云购买,系统选择centos8.2即可(当然,别的系统也可以哈),之后连接SSH安装宝塔面板。


宝塔面板安装命令

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh


目前运行 Halo 的最低依赖要求为 JRE 11,所以我们开始安装java jdk。

登录SSH,输入

yum install java-11-openjdk -y

Snipaste_2021-11-02_16-16-37.png

安装完成后输入:

java -version
java

查看java版本及是否安装成功

Snipaste_2021-11-02_16-19-14.png

出现上图即代表jdk安装成功,来进行下一步吧~

在宝塔面板创建站点,输入域名即可

Snipaste_2021-11-02_16-21-15.png

创建站点后返回ssh,cd到创建的网站目录内。

cd /www/wwwroot/www.chvm.cn

上方的www.chvm.cn改为自己的网站目录


使用wget下载halo系统包

wget https://dl.halo.run/release/halo-1.4.13.jar

如果官方地址无法下载,可以使用github的下载地址

wget https://github.com/halo-dev/halo/releases/download/v1.4.13/halo-1.4.13.jar

下载成功后开始运行啦~
Snipaste_2021-11-02_16-29-37.png

输入:

java -jar halo-1.4.13.jar

运行halo。

Snipaste_2021-11-02_16-31-08.png

等待halo启动成功。

Snipaste_2021-11-02_16-32-11.png

出现Halo has started successfully!即代表启动成功。


因为halo在关闭SSH窗口后会关闭,所以配置一下让他后台运行,CTRL+C结束进程。

下载 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
ExecStart=/usr/bin/java -server-Xms256m-Xmx256m-jar YOUR_JAR_PATH
ExecStop=/bin/kill -s QUIT $MAINPIDRestart=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


反向代理

halo的默认地址为:http://127.0.0.1:8090

总不能用内网访问吧?所以我们需要配置nginx反向代理,让halo可以使用域名及外网访问

Snipaste_2021-11-02_16-46-03.png

宝塔面板>网站>需要设置的网站>网站设置>反向代理>添加反向代理>

代理名称可以随便填,类似备注的意思。

目标url填写:http://127.0.0.1:8090

发送域名默认$host即可。


此时访问域名,即可初始化安装halo啦~

Snipaste_2021-11-02_17-32-43.png

Snipaste_2021-11-02_17-33-50.png

Snipaste_2021-11-02_17-35-56.png

此时halo博客就安装成功啦!基于java的博客,执行效率还是蛮高的~

相关文章
|
4天前
|
消息中间件 Java 数据库
自研Java框架 Sunrays-Framework使用教程「博客之星」
### Sunrays-Framework:助力高效开发的Java微服务框架 **Sunrays-Framework** 是一款基于 Spring Boot 构建的高效微服务开发框架,深度融合了 Spring Cloud 生态中的核心技术组件。它旨在简化数据访问、缓存管理、消息队列、文件存储等常见开发任务,帮助开发者快速构建高质量的企业级应用。 #### 核心功能 - **MyBatis-Plus**:简化数据访问层开发,提供强大的 CRUD 操作和分页功能。 - **Redis**:实现高性能缓存和分布式锁,提升系统响应速度。 - **RabbitMQ**:可靠的消息队列支持,适用于异步
自研Java框架 Sunrays-Framework使用教程「博客之星」
|
2月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
7天前
|
Oracle Java 关系型数据库
Java基础(一):语言概述
Java基础(一):语言概述
Java基础(一):语言概述
|
1天前
|
JavaScript Java 测试技术
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
22 6
|
10天前
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
34 7
|
16天前
|
存储 监控 算法
探秘局域网桌面监控:深入剖析 Java 语言核心算法
在数字化办公时代,局域网桌面监控如同企业的“智慧鹰眼”,确保工作效率与数据安全。本文以Java为载体,揭示哈希表在监控中的关键应用。通过高效的数据结构和算法,哈希表能快速索引设备连接信息,大幅提升监控的时效性和响应速度。代码示例展示了如何用Java实现设备网络连接监控,结合未来技术如AI、大数据,展望更智能的监控体系,助力企业在数字化浪潮中稳健前行。
|
2月前
|
设计模式 消息中间件 搜索推荐
Java 设计模式——观察者模式:从优衣库不使用新疆棉事件看系统的动态响应
【11月更文挑战第17天】观察者模式是一种行为设计模式,定义了一对多的依赖关系,使多个观察者对象能直接监听并响应某一主题对象的状态变化。本文介绍了观察者模式的基本概念、商业系统中的应用实例,如优衣库事件中各相关方的动态响应,以及模式的优势和实际系统设计中的应用建议,包括事件驱动架构和消息队列的使用。
|
20天前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
82 17
|
30天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
15天前
|
缓存 安全 算法
Java 多线程 面试题
Java 多线程 相关基础面试题