文章目录

  • 下载jar包并测试
  • 在 Linux 服务器部署 Halo
    • Xftp 连接传输jar包
    • Xshell 连接发布项目
    • 进阶配置

本栏目,使用halo开源项目快速搭建个人博客,通过阿里云实例的一系列部署,完成建站。从如何购买实例、购买域名、域名绑定解析、绑定安全组、开放防火墙、Linux-jar包部署,docker部署等各方面,让新手小白从0到建站完毕拥有自己的个人博客

!!!食用注意:
完全可以根据官方文档的教程进行部署
本编博客是为了更好地面对新手而写的流程性博客
  • halo官网
  • halo部署教程
  • halo-GitHub仓库
  • 使用的主题仓库

下载jar包并测试

  • 下载地址

  • 打开终端(Windows 为 CMD)【cd或者下载目录地址栏输入cmd】,进入到 Halo 运行包的目录,然后执行如下命令:

# halo-{version}.jar 对应jar包文件名
java -jar halo-{version}.jar
  • 执行命令成功

  • 进入 http://localhost:8090 进行本机环境验证是否成功
  • 根据提示进行初始化即可

在 Linux 服务器部署 Halo

  • 前提条件:

    • 点击查看教程教程:如何配置安全规则和实例防火墙开放端口
  • 准备工具:使用Xshell和Xftp工具

    • 点击查看教程教程:如何远程连接和管理控制台基本介绍

Xftp 连接传输jar包

  • 官方推荐在/根目录下新建/www/wwwroot目录
  • 然后从左侧本机目录拖动jar包到阿里云实例目录即可

到这里我们就把jar上传到服务器了


Xshell 连接发布项目


根据以下步骤在Linux窗口下输入命令即可

环境要求:

为了在使用过程中不出现意外的事故,给出下列推荐的配置

  • CentOS 7.x
  • 512 MB 以上内存

更新软件包:

请确保服务器的软件包已经是最新的。

sudo yum update -y

安装 Java 运行环境:

若已经存在 Java 运行环境的可略过这一步。

# 安装 OpenJRE
sudo yum install java-1.8.0-openjdk -y# 检测是否安装成功
java -version
当然,这只是其中一种比较简单的安装方式,你也可以用其他方式,并不是强制要求使用这种方式安装。

创建 Halo 用户:

我们推荐创建一个低权限的用户运行 halo:# 创建 halo 用户
sudo useradd -m halo
# 直接登录该用户
sudo su halo

安装 Halo:

考虑到部分用户的需要,可能需要自定义比如端口等设置项,我们提供了公共的配置文件,并且该配置文件是完全独立于安装包的。当然,你也可以使用安装包内的默认配置文件,但是安装包内的配置文件是不可修改的。请注意:配置文件的路径为 ~/.halo/application.yaml。
# 下载配置文件到 ~/.halo 目录
curl -o ~/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml

修改配置文件:

完成上一步操作,我们就可以自己配置 Halo 的运行端口,以及数据库相关的配置了。# 使用 Vim 工具修改配置文件
vim ~/.halo/application.yaml

打开之后我们可以看到

server:port: 8090# Response data gzip.compression:enabled: false
spring:datasource:# H2 database configuration.driver-class-name: org.h2.Driverurl: jdbc:h2:file:~/.halo/db/halousername: adminpassword: 123456# MySQL database configuration.#    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: root#    password: 123456# H2 database console configuration.h2:console:settings:web-allow-others: falsepath: /h2-consoleenabled: falsehalo:# Your admin client path is https://your-domain/{admin-path}admin-path: admin# memory or levelcache: memory
  1. 如果需要自定义端口,修改 server 节点下的 port 即可。
  2. 默认使用的是 H2 Database 数据库,这是一种嵌入式的数据库,使用起来非常方便。需要注意的是,默认的用户名和密码为 admin 和 123456,这个是自定义的,最好将其修改,并妥善保存。
  3. 如果需要使用 MySQL 数据库,需要将 H2 Database 的所有相关配置都注释掉,并取消 MySQL 的相关配置。另外,MySQL 的默认数据库名为 halodb,请自行配置 MySQL 并创建数据库,以及修改配置文件中的用户名和密码。
  4. h2 节点为 H2 Database 的控制台配置,默认是关闭的,如需使用请将 h2.console.settings.web-allow-others 和 h2.console.enabled 设置为 true。控制台地址即为 域名/h2-console。注意:非紧急情况,不建议开启该配置。
  5. server.compression.enabled 为 Gzip 功能配置,如有需要请设置为 true,需要注意的是,如果你使用 Nginx 或者 Caddy 进行反向代理的话,默认是有开启 Gzip 的,所以这里可以保持默认。
  6. halo.admin-path 为后台管理的根路径,默认为 admin,如果你害怕别人猜出来默认的 admin(就算猜出来,对方什么都做不了),请自行设置。仅支持一级,且前后不带 /。
  7. halo.cache 为系统缓存形式的配置,可选 memory 和 level,默认为 memory,将数据缓存到内存,使用该方式的话,重启应用会导致缓存清空。如果选择 level,则会将数据缓存到磁盘,重启不会清空缓存。如不知道如何选择,建议默认。

注意:

使用 MySQL 之前,必须要先新建一个 halodb 数据库,MySQL 版本需 5.7 以上。

create database halodb character set utf8mb4 collate utf8mb4_bin;

运行 Halo:

Halo 的整个应用程序只有一个 Jar 包,且不包含用户的任何配置,它放在任何目录都是可行的。需要注意的是,Halo 的整个额外文件全部存放在 ~/.halo 目录下,包括 application.yaml(用户配置文件),template/themes(主题目录),upload(附件上传目录),halo.db.mv(数据库文件)。一定要保证 ~/.halo 的存在,你博客的所有资料可都存在里面。所以你完全不需要担心安装包的安危,它仅仅是个服务而已。

# 下载最新的 Halo 安装包,{{version}} 为版本号,不带 v,更多下载地址请访问 https://halo.run/archives/download.html
wget https://dl.halo.run/release/halo-{{version}}.jar -O halo-latest.jar# 启动测试
java -jar halo-latest.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!

提示:

以上的启动仅仅为测试 Halo 是否可以正常运行,如果我们关闭 ssh 连接,Halo 也将被关闭。要想一直处于运行状态,请继续看下面的教程。


进阶配置

上面我们已经完成了 Halo 的整个配置和安装过程,接下来我们对其进行更完善的配置,比如:需要开机自启?,更简单的启动方式?

实现以上功能我们只需要新增一个配置文件即可,也就是使用 Systemd 来完成这些工作。

如果当前用户为 halo 用户,则需要退出 halo 用户,进入一个拥有管理员权限的用户下:


# 查看当前登录用户
whoami# 退出 halo 登录,进入一个有管理员权限的用户
su xxx 或者直接 exit
# 下载 Halo 官方的 halo.service 模板
sudo curl -o /etc/systemd/system/halo.service --create-dirs https://dl.halo.run/config/halo.service

下载完成之后,我们还需要对其进行修改。

# 修改 halo.service
sudo vim /etc/systemd/system/halo.service

打开之后我们可以看到

[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target[Service]
User=halo
Type=simple
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar YOUR_JAR_PATH
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslogStandError=inherit[Install]
WantedBy=multi-user.target

参数:

  • -Xms256m:为 JVM 启动时分配的内存,请按照服务器的内存做适当调整,512 M 内存的服务器推荐设置为 128,1G 内存的服务器推荐设置为 256,默认为 256。
  • -Xmx256m:为 JVM 运行过程中分配的最大内存,配置同上。
  • YOUR_JAR_PATH:Halo 安装包的绝对路径,例如 /www/wwwroot/halo-latest.jar。

提示:

如果你不是按照上面的方法安装的 JDK,请确保 /usr/bin/java 是正确无误的。
systemd 中的所有路径均要写为绝对路径,另外,~ 在 systemd 中也是无法被识别的,所以你不能写成类似 ~/halo-latest.jar 这种路径。
如何检验是否修改正确:把 ExecStart 中的命令拿出来执行一遍。

# 修改 service 文件之后需要刷新 Systemd
sudo systemctl daemon-reload# 使 Halo 开机自启
sudo systemctl enable halo# 启动 Halo
sudo service halo start# 重启 Halo
sudo service halo restart# 停止 Halo
sudo service halo stop# 查看 Halo 的运行状态
sudo service halo status

完成以上操作即可通过 IP:端口 访问了。

—end

【2020阿里云部署实战】下载Halo开源项目Jar包并发布相关推荐

  1. 2020 阿里云原生实战峰会即将开幕 云原生落地的正确姿势

    来源|阿里巴巴云原生公众号 2020 的各种意外,让数字创新成为应对不确定性最为确定的发展动能.一方面,数字化成为提升企业核心竞争力的关键:另一方面,云原生取代传统 IT 成为企业数字化最短路径,加速 ...

  2. 2020 阿里云原生实战峰会开幕 云原生落地的正确姿势

    简介:让数字创新成为应对不确定性最为确定的发展动能. 来源|阿里巴巴云原生公众号 2020 的各种意外,让数字创新成为应对不确定性最为确定的发展动能.一方面,数字化成为提升企业核心竞争力的关键:另一方 ...

  3. 快速部署阿里云WebIDE(DevStudio)并参与开源项目开发

    引言:轻量应用服务器提供了DevStudio 1.12应用镜像,可以通过该镜像快速部署并使用DevStudio.DevStudio是阿里云云效推出的WebIDE产品,内部预置了Node.js.Pyth ...

  4. 阿里云机器学习平台PAI+AI开源项目测评来啦

    一.背景介绍 阿里AI(阿里灵杰)依托阿里领先的云基础设施.大数据和AI工程能力.场景算法技术和多年行业实践,一站式地为企业和开发者提供云原生的AI能力体系.帮助提升AI应用开发效率,促进AI在产业中 ...

  5. 阿里云部署SpringBoot项目

    目录 步骤1:购买服务器(新用户免费试用一个月) 步骤2:查看服务器相关信息 ​编辑 步骤3:设置安全组 步骤4:远程连接 步骤5:使用FinalShell连接阿里云服务器 步骤6:阿里云服务器上安装 ...

  6. 阿里云部署开源IPPBX系统

    freepbx阿里云部署 前言 一.虚拟机安装 FreePBX 二.镜像转换 三.镜像导入到阿里云 前言 阿里云不是freepbx其实有两种方式,一种就是通过源码编译安装,另外一种就是使用freepb ...

  7. DTCC 2020 | 阿里云王涛:阿里巴巴电商数据库上云实践

    简介:第十一届中国数据库技术大会(DTCC2020),在北京隆重召开.大会以"架构革新 高效可控"为主题,重点围绕数据架构.AI与大数据.传统企业数据库实践和国产开源数据库等内容展 ...

  8. 阿里云Kubernetes实战2–搭建基础服务

    前言: 在系列的第一篇文章中,我已经介绍过如何在阿里云基于kubeasz搭建K8S集群,通过在K8S上部署gitlab并暴露至集群外来演示服务部署与发现的流程.文章写于4月,忙碌了小半年后,我才有时间 ...

  9. DTCC 2020 | 阿里云张鑫:阿里云云原生异地多活解决方案

    简介:异地多活,顾名思义就是分布在异地多个站点同时对外提供服务,与传统灾备最主要的区别是"多活"里所有站点都是同时在对外提供服务的.在业务不断复杂化和容灾要求不断严格化的今天,如何 ...

最新文章

  1. c++map的使用_mybatis源码 | mybatis插件及动态代理的使用
  2. (二)企业部分之lnmp环境的搭建:mysql源码安装
  3. 练习一:数学计算 有四个数字,分别是1,2,3,4,请问可以组成多少个相互不重复的数字,各是多少...
  4. Xamarin 中Visual Studio创建项目提示错误
  5. TOUGHRADIUS 项目介绍
  6. mysql查询当前库的实例名_oracle查询数据库名、实例名等
  7. mysql 锁24小时_MySQL中Alter table 不长时间锁表的情况汇总。
  8. 在div 底部显示背景图片
  9. jQuery学习笔记02
  10. 拒绝充钱!教你一招避开网盘限速
  11. Win10网卡驱动突然消失
  12. php天猫列表数据抓取,天猫数据抓取方法_简易采集 - 八爪鱼采集器
  13. 猜数字小游戏html,猜数字游戏.html
  14. MyBatis-Ext,方便易用的MyBatis增强扩展
  15. Windows文件名太长无法删除
  16. 克罗内克积(Kronecker product)与笛卡尔乘积(Cartesian product)
  17. “如果有借鉴意义的话” —— 从上帝视角复盘Offer选择
  18. 3D立体相册不过是冷锋蓝plus版 html+css
  19. 关于梅森素数定理(网上收集)
  20. PHP 阿里云视频点播HLS加密(简单流程)

热门文章

  1. 了解海外域名市场,把域名卖到全世界!
  2. Matlab2022a无法识别vs2019编译器,未检测到支持的编译器,错误使用Mex -setup error cannot find support compiler
  3. P2918 [USACO08NOV]Buying Hay S(买干草)(ssl 2895)
  4. 建模大佬们都不外传的3D max游戏建模神操作技巧
  5. 视频教程-Project-规划项目(基本操作)-Office/WPS
  6. 计算机专业学习阶段计划书怎么写,计算机专业学习计划优秀范文2篇
  7. CMOS图像传感器的参数和评价标准
  8. 在服务器上跑 Java Selenium 的教程
  9. 高温玻璃彩釉机的打印精度是多少?
  10. 1个球从100m落下,每次时,反跳原高度的一半,再落,再反弹,求第10次落地共经过多少m,第10次反弹多高。 谭浩强《c语言程序设计》第五章第十一题