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

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云服务器ECS,u1 2核4GB 1个月
简介: 基于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

具体信息参看阿里云文档

镜像安装部署

参考halo官方文档

  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
我们可以在这里进行后端的管理

命令行部署

参考halo官方

  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,这样大家就都可以通过我们的域名访问我们的博客!

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
23天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
6月前
|
弹性计算 关系型数据库 Apache
基于ECS搭建云上博客
本场景将基于一台配置了CentOS 7.7操作系统的ECS实例(云服务器)。通过本教程的操作,您可以在一台CentOS 7.7操作系统的ECS实例上安装和部署LAMP环境,然后安装 WordPress,帮助您快速搭建自己的博客。
基于ECS搭建云上博客
|
7月前
|
存储 弹性计算 安全
阿里云服务器官网:打造稳定可靠的云端平台
随着数字化时代的到来,云计算成为了企业转型升级的必然选择。作为中国云计算服务提供商,阿里巴巴旗下的阿里云服务器官网以其强大的技术实力和卓越的产品品质,成为众多企业和个人用户的首选。
|
1月前
|
弹性计算 安全 定位技术
幻兽帕鲁服务器搭建攻略:【阿里云平台快速上手指南】
2024年,火爆畅销的《幻兽帕鲁》游戏让无数玩家着迷不已!那么,您是否急切想要拥有一个能与伙伴们一起畅快玩耍的游戏服务器呢?现在就跟随若城的脚步,一起动手搭建一个属于自己的《幻兽帕鲁》服务器吧!让这个新年有心意
|
2月前
|
弹性计算 Linux 数据安全/隐私保护
幻兽帕鲁服务器搭建攻略:阿里云平台快速上手指南
2024年,火爆畅销的《幻兽帕鲁》游戏让无数玩家着迷不已!那么,您是否急切想要拥有一个能与伙伴们一起畅快玩耍的游戏服务器呢?现在就跟随若城的脚步,一起动手搭建一个属于自己的《幻兽帕鲁》服务器吧!让这个新年有心意, 让这个寒假更有趣
75092 10
|
2月前
|
SQL 弹性计算 安全
一文教你如何从零构建机密计算平台解决方案-ECS安全季
本文整理自【弹性计算技术公开课——ECS安全季】中,阿里云弹性计算产品专家唐湘华和阿里云弹性计算高级技术专家聂百川带来的收官课程《从零构建机密计算平台的解决方案》一节。
|
3月前
|
弹性计算 关系型数据库 MySQL
带你读《弹性计算技术指导及场景应用》——2. 免费试用ECS,轻松搭建WordPress博客平台使用
带你读《弹性计算技术指导及场景应用》——2. 免费试用ECS,轻松搭建WordPress博客平台使用
182 0
|
3月前
|
数据采集 编解码 图形学
Android平台Unity下如何通过WebCamTexture采集摄像头数据并推送至RTMP服务器或轻量级RTSP服务
Android平台Unity下如何通过WebCamTexture采集摄像头数据并推送至RTMP服务器或轻量级RTSP服务
|
7月前
|
数据采集 开发工具 Android开发
Android平台如何实现屏幕数据采集并推送至RTMP服务器
随着无纸化、智慧教室等场景的普及,好多企业或者开发者开始寻求更高效稳定低延迟的RTMP同屏方案,本文以大牛直播SDK(Github)的同屏demo(对应工程:SmartServicePublisherV2)为例,介绍下如何采集编码推送RTMP数据到流媒体服务器。
129 0
|
4月前
|
弹性计算 监控 关系型数据库
阿里云ECS e实例最佳实践测评:搭建云上博客
阿里云ECS e实例最佳实践测评:搭建云上博客
56086 2