【2020阿里云部署实战】下载Halo开源项目Jar包并发布
文章目录
- 下载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
- 如果需要自定义端口,修改 server 节点下的 port 即可。
- 默认使用的是 H2 Database 数据库,这是一种嵌入式的数据库,使用起来非常方便。需要注意的是,默认的用户名和密码为 admin 和 123456,这个是自定义的,最好将其修改,并妥善保存。
- 如果需要使用 MySQL 数据库,需要将 H2 Database 的所有相关配置都注释掉,并取消 MySQL 的相关配置。另外,MySQL 的默认数据库名为 halodb,请自行配置 MySQL 并创建数据库,以及修改配置文件中的用户名和密码。
- h2 节点为 H2 Database 的控制台配置,默认是关闭的,如需使用请将 h2.console.settings.web-allow-others 和 h2.console.enabled 设置为 true。控制台地址即为 域名/h2-console。注意:非紧急情况,不建议开启该配置。
- server.compression.enabled 为 Gzip 功能配置,如有需要请设置为 true,需要注意的是,如果你使用 Nginx 或者 Caddy 进行反向代理的话,默认是有开启 Gzip 的,所以这里可以保持默认。
- halo.admin-path 为后台管理的根路径,默认为 admin,如果你害怕别人猜出来默认的 admin(就算猜出来,对方什么都做不了),请自行设置。仅支持一级,且前后不带 /。
- 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包并发布相关推荐
- 2020 阿里云原生实战峰会即将开幕 云原生落地的正确姿势
来源|阿里巴巴云原生公众号 2020 的各种意外,让数字创新成为应对不确定性最为确定的发展动能.一方面,数字化成为提升企业核心竞争力的关键:另一方面,云原生取代传统 IT 成为企业数字化最短路径,加速 ...
- 2020 阿里云原生实战峰会开幕 云原生落地的正确姿势
简介:让数字创新成为应对不确定性最为确定的发展动能. 来源|阿里巴巴云原生公众号 2020 的各种意外,让数字创新成为应对不确定性最为确定的发展动能.一方面,数字化成为提升企业核心竞争力的关键:另一方 ...
- 快速部署阿里云WebIDE(DevStudio)并参与开源项目开发
引言:轻量应用服务器提供了DevStudio 1.12应用镜像,可以通过该镜像快速部署并使用DevStudio.DevStudio是阿里云云效推出的WebIDE产品,内部预置了Node.js.Pyth ...
- 阿里云机器学习平台PAI+AI开源项目测评来啦
一.背景介绍 阿里AI(阿里灵杰)依托阿里领先的云基础设施.大数据和AI工程能力.场景算法技术和多年行业实践,一站式地为企业和开发者提供云原生的AI能力体系.帮助提升AI应用开发效率,促进AI在产业中 ...
- 阿里云部署SpringBoot项目
目录 步骤1:购买服务器(新用户免费试用一个月) 步骤2:查看服务器相关信息 编辑 步骤3:设置安全组 步骤4:远程连接 步骤5:使用FinalShell连接阿里云服务器 步骤6:阿里云服务器上安装 ...
- 阿里云部署开源IPPBX系统
freepbx阿里云部署 前言 一.虚拟机安装 FreePBX 二.镜像转换 三.镜像导入到阿里云 前言 阿里云不是freepbx其实有两种方式,一种就是通过源码编译安装,另外一种就是使用freepb ...
- DTCC 2020 | 阿里云王涛:阿里巴巴电商数据库上云实践
简介:第十一届中国数据库技术大会(DTCC2020),在北京隆重召开.大会以"架构革新 高效可控"为主题,重点围绕数据架构.AI与大数据.传统企业数据库实践和国产开源数据库等内容展 ...
- 阿里云Kubernetes实战2–搭建基础服务
前言: 在系列的第一篇文章中,我已经介绍过如何在阿里云基于kubeasz搭建K8S集群,通过在K8S上部署gitlab并暴露至集群外来演示服务部署与发现的流程.文章写于4月,忙碌了小半年后,我才有时间 ...
- DTCC 2020 | 阿里云张鑫:阿里云云原生异地多活解决方案
简介:异地多活,顾名思义就是分布在异地多个站点同时对外提供服务,与传统灾备最主要的区别是"多活"里所有站点都是同时在对外提供服务的.在业务不断复杂化和容灾要求不断严格化的今天,如何 ...
最新文章
- c++map的使用_mybatis源码 | mybatis插件及动态代理的使用
- (二)企业部分之lnmp环境的搭建:mysql源码安装
- 练习一:数学计算 有四个数字,分别是1,2,3,4,请问可以组成多少个相互不重复的数字,各是多少...
- Xamarin 中Visual Studio创建项目提示错误
- TOUGHRADIUS 项目介绍
- mysql查询当前库的实例名_oracle查询数据库名、实例名等
- mysql 锁24小时_MySQL中Alter table 不长时间锁表的情况汇总。
- 在div 底部显示背景图片
- jQuery学习笔记02
- 拒绝充钱!教你一招避开网盘限速
- Win10网卡驱动突然消失
- php天猫列表数据抓取,天猫数据抓取方法_简易采集 - 八爪鱼采集器
- 猜数字小游戏html,猜数字游戏.html
- MyBatis-Ext,方便易用的MyBatis增强扩展
- Windows文件名太长无法删除
- 克罗内克积(Kronecker product)与笛卡尔乘积(Cartesian product)
- “如果有借鉴意义的话” —— 从上帝视角复盘Offer选择
- 3D立体相册不过是冷锋蓝plus版 html+css
- 关于梅森素数定理(网上收集)
- PHP 阿里云视频点播HLS加密(简单流程)
热门文章
- 了解海外域名市场,把域名卖到全世界!
- Matlab2022a无法识别vs2019编译器,未检测到支持的编译器,错误使用Mex -setup error cannot find support compiler
- P2918 [USACO08NOV]Buying Hay S(买干草)(ssl 2895)
- 建模大佬们都不外传的3D max游戏建模神操作技巧
- 视频教程-Project-规划项目(基本操作)-Office/WPS
- 计算机专业学习阶段计划书怎么写,计算机专业学习计划优秀范文2篇
- CMOS图像传感器的参数和评价标准
- 在服务器上跑 Java Selenium 的教程
- 高温玻璃彩釉机的打印精度是多少?
- 1个球从100m落下,每次时,反跳原高度的一半,再落,再反弹,求第10次落地共经过多少m,第10次反弹多高。 谭浩强《c语言程序设计》第五章第十一题