基于ECS使用Halo实现博客平台

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 基于ECS使用Halo实现博客平台,快速的搭建一个可用的动态博客平台

基于ECS使用Halo实现博客平台

官方介绍

Halo [ˈheɪloʊ]
好用又强大的开源建站工具。
Halo是一个动态开源博客框架,后端基于Spring Boot,数据库使用嵌入式数据库R2DBC(基于需求在1.x版本可以扩展MySQL,在2.0版本可以使用PostgreSQL),前端使用Tymeleaf引擎。除此之外使用webflux reactive响应式编程的方案,Apache Lucene作为搜索库...很多独特的技术来搭建框架。

简介

Halo作为一个博客框架,能具有很好的开箱即用的便捷性,而且具有丰富的管理和扩展能力,一定数量的Theme扩展(1.x版本的扩展丰富一些,2.0的扩展较少),有诸如评论,App端...的周边生态,并且作为动态博客框架,能方便博客撰写者在线编辑预览效果。Halo也在不断更新,在如今2022.12月最新更新的2.0.0的release,社区活跃,能够帮助解决我们很多问题。所以如今我们使用Halo在阿里云ECS服务器上完成一次完成的Halo博客平台的搭建,包含下面的内容:

前置提醒

本次选择的Halo版本为1.6,并没有选择最新的2.0,2.0本身架构上与1.x并不兼容,并且1.x已经不再积极更新和维护,如果升级2.0则需要完全重新部署,但是1.x系列有着更好的主题库(官方提供),2.0不能兼容一些官方主题仓库的主题,所以最后选择了1.6,==请根据需要选择==文档

本次使用的操作系统为Alibaba Cloud Linux 3.2104 LTS 64位,使用rpm进行包管理,配置2核2G 40G云盘(Halo的硬件需求不高,只要求1G上的RAM即可)

公网使用

打开云服务器对应控制台,选择安全组>进入当前服务器的安全组>配置规则>
手动添加8090端口(这是halo默认的端口号)的入规则:
image.png

Docker部署

安装

参照官网的Docker Engine安装教程
这里我们选择Docker Server下的Centos版本(和Alibaba Cloud Linux兼容)
image.png
需要其他版本的可以自己在官网查看,我们会到达这个界面
因为是新的服务器,我们直接按照教程安装:(PS:为了速度更快可以选择阿里官方的方案,下面会列出)
建立储存库

sudo yum install -y yum-utils # yum工具集
sudo yum-config-manager \ # yum配置docker官方源
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

安装Docker最新版本配套工具集

sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin # 

启动Docker

sudo systemctl start docker

验证Docker是否成功运行

sudo docker run hello-world # 启动hello-world的容器服务,出现Hello from Docker!的系列文字即为成功

==注意:== 尽量安装最新的Docker,如果已经安装了旧版的Docker,可以使用官方的升级方案:重复安装步骤,但是用 yum -y upgrade 替代 yum -y install即可
升级的原因是因为不升级Docker版本低,启用Java会报错。
阿里云Docker安装方案:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

sudo yum makecache fast

sudo yum -y install docker-ce

sudo service docker start

具体信息参看阿里云文档

镜像安装部署

  1. 创建 工作目录
mkdir ~/.halo && cd ~/.halo # 自己随意选择目录来存放halo产生的文件
  1. 下载示例配置文件到 工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
  1. 编辑配置文件,配置数据库或者端口等,如需配置请参考配置参考,这里我们沿用默认配置
vim application.yaml
  1. 拉取最新的 Halo 镜像
docker pull halohub/halo:1.6.0 # 这里记得用1.6版本镜像,最新的可能是2.0
  1. 创建容器,使用docker容器的8090端口映射到宿主机8090,这个端口自己选择;restart官方 建议设置为 unless-stopped,在 Docker 启动的时候自动启动 Halo 容器。
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.6.0

创建成功后我们可以在浏览器中访问啦,访问http://公网ip:8090/

image.png
==!!!管理端为http://公网ip:8090/admin,这是对于1.x版本而言,对于2.0版本管理端为http://公网ip:8090/console==
image.png
我们可以在这里进行后端的管理

命令行部署

  1. java环境安装

halo使用的java为11,安装openjdk11即可:

sudo yum install java-11-openjdk -y

# java --version # 检查安装结果

这里我们图省事没有按照官方非root的安装办法:

  1. 创建存放 运行包 的目录,这里以 ~/app 为例
mkdir ~/app && cd ~/app
  1. 下载运行包
wget https://dl.halo.run/release/halo-1.6.0.jar -O halo.jar

如果下载速度不理想,可以尝试
wget https://github.com/halo-dev/halo/releases/download/v1.6.0/halo-1.6.0.jar -O halo.jarwget https://halo.cary.tech/release/halo-1.6.0.jar -O halo.jar

  1. 创建工作目录
mkdir ~/.halo && cd ~/.halo
  1. 下载示例配置文件到工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml 
  1. 编辑配置文件,配置数据库或者端口等,如需配置请参考 配置参考
vim application.yaml

这是我的配置文件:

server:
  port: 8090 # 端口

  # Response data gzip. # 响应压缩(节省带宽)
  compression:
    enabled: false
spring:
  datasource: # 嵌入数据源
    # H2 database configuration.
    driver-class-name: org.h2.Driver
    url: jdbc:h2:file:~/.halo/db/halo
    username: admin
    password: 123321 

# 可配置的MySQL数据源
    # 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数据库配置
  h2:
    console:
      settings:
        web-allow-others: false # 允许数据库web访问
      path: /h2-console # h2数据库管理页面
      enabled: false

halo:
  # Your admin client path is https://your-domain/{admin-path}
  admin-path: admin # 管理界面路径!!区别于2.0
  # 缓存
  cache: memory
  1. 测试运行 Halo
cd ~/app && java -jar halo.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!

在这一个流程配置下来,达到了和之前docker一样的部署效果,但是不同于docker的是这个服务不会自动启动,自动启动可以使用service版本进行安装,参考官网作为服务运行
效果展示见上

主题更换

在主题界面选择安装:
image.png
https://halo.run/themes.html 中的主题我们需要甄别1.6.0版本可用的,我们选择任意,进入它的github界面,复制它的git地址,例如我下面的这个:
https://github.com/PedroNull/halo-theme-hingle.git
或者release中的zip地址:
https://github.com/Pedro-null/halo-theme-hingle/archive/refs/tags/v1.0.0.zip
==注:有些下载的可能很慢,我们可以在gitee上搜索有无对应源==
也可以自己下载然后拖动zip包到框中即可完整主题安装。
image.png

安装成功后就可以随意更换自己喜欢的主题啦!!

域名解析

这里可以使用aliyun的域名服务我们的ip,这样大家就都可以通过我们的域名访问我们的博客!

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
弹性计算 开发框架 关系型数据库
基于ECS搭建云上博客实验
在一台CentOS 7.7操作系统的ECS实例上安装和部署LAMP环境,然后安装 WordPress,快速搭建自己的博客,熟悉ECS实例的使用和LAMP的部署。
|
弹性计算
关于基于ECS搭建云上博客的使用个人服务器出现的一些问题
由于创建个人服务器时没有正确设置安全组,导致服务器无法被http访问的一些问题
关于基于ECS搭建云上博客的使用个人服务器出现的一些问题
|
存储 弹性计算 关系型数据库
基于ECS搭建云上博客
【实验名称】:基于ECS搭建云上博客 【实验目的】:本场景演示了在 ECS云服务器(CentOS7)的环境下,通过部署 LAMP环境并安装 WordPress 快速搭建个人博客。 【实验环境】ECS云服务器(CentOS7)
|
6月前
|
弹性计算 Java 对象存储
使用云服务器ECS快速搭建Halo博客
本文来自云服务器ECS开发实践征文活动用户投稿,从阿里云服务器购买(试用)到搭建一个属于开发者自己的开源博客系统,带你从0到1了解认识阿里云ECS搭建博客网站。步骤详细,可操作性强,教您玩转ECS。全文大约3000字。已获得作者(昵称乌龟哥哥)授权发布。
284 0
使用云服务器ECS快速搭建Halo博客
|
弹性计算 Linux Apache
ECS搭建云上博客
在ECS云服务器(CentOS7)的环境下,通过部署 LAMP环境并安装 WordPress 快速搭建个人博客。
|
弹性计算 关系型数据库 MySQL
使用ECS搭建自己的wordpress博客
首先在云实验室做了一次实验,熟悉了相关的流程,之后就自己尝试搭建wordpress,中间配置环境期间出现了各种问题,还重启示例好多次,不过最终还是圆满完成搭建,我拥有了自己的个人博客。
使用ECS搭建自己的wordpress博客
|
弹性计算 Linux Shell
阿里云ECS从0到1部署wordpress博客
本文从0到1给大家介绍如何在阿里云云服务器上部署wordpress博客,本文参加活动ECS测评大赛:https://developer.aliyun.com/topic/ecs2022
阿里云ECS从0到1部署wordpress博客
|
Docker 容器
试用阿里云搭建halo博客
借助docker和docker-compose搭建halo博客
467 0
试用阿里云搭建halo博客
|
存储 弹性计算 关系型数据库
基于ECS搭建Wordpress博客
ECS+WordPress个人建站练习
347 2
基于ECS搭建Wordpress博客
|
弹性计算 人工智能 Ubuntu
阿里云ECS使用初体验之搭建halo个人博客
通过阿里云的“飞天加速计划·高校学生在家实践”活动试用体验ECS,实例安装Ubuntu20.04系统,通过MobaXterm远程连接ECS,同时通过安装宝塔面板和部署LNMP环境,基于Docker搭建了halo博客应用。
551 2
阿里云ECS使用初体验之搭建halo个人博客