个人博客网站搭建详细教程记录——基于Halo的快速搭建

个人博客网站搭建详细教程记录——基于halo的快速搭建

  • 0. 背景
  • 1.关于Halo
  • 2.博客搭建
    • 2.1 环境准备
    • 2.2 docker安装
    • 2.3 创建项目目录并下载配置文件
    • 2.4 拉取Halo镜像并创建容器
  • 3.等待学习...
    • 3.1 关于docker
    • 3.2 关于宝塔面板
    • 3.3 其他

写在开头:本文是一篇纯新手向的建站教程,学习、记录与分享。希望大家在网络上,玩得开心。

0. 背景

毕业前完成毕业设计的时候,领了一个七个月云服务器,本来想着正好可以把毕业设计部署上去,但是后面临近毕业事情有多又杂,加上执行力不够无限搁置一转眼就到毕业。参加工作后,因为负责的新项目还在启动阶段所以比较闲,想到好好的资源放在那里闲置着很是可惜,就想着搭个网站玩一下,顺便在过程中看看能不能完善一下技术栈。就想着也去搭一个博客,把自己的学习路线整理起来,形成自己的知识沉淀,同时梳理一下自己的技术体系框架,看看是否能形成比较系统的知识。

1.关于Halo

之前在学习一些技术的时候,一个很关照我的哥把他的博客发给我学习,了解到了Halo,感觉风格很清爽很简洁,个人非常喜欢,所以这次一下子就想到了它。另外Halo是基于java和spring boot与我自身的技术栈也十分匹配,所以就决定是它了。

项目仓库:
Github仓库: https://github.com/halo-dev/halo/
Gitee仓库:https://gitee.com/halo-dev/halo
官方网站: https://halo.run/

2.博客搭建

2.1 环境准备

1、在云平台安全组中打开相关端口,其中8090为Halo端口必须打开,其他根据个人情况选择。
个人博客网站搭建详细教程记录——基于Halo的快速搭建_第1张图片
Halo安装搭建个人分为两种方式分别为Docker容器和手动安装。

使用 jar 包运行的方式需要用户自行构建 jar 包。这里我们先安装docker,目前 Halo 的默认及推荐安装方式也为 Docker 容器运行,。

2.2 docker安装

1.我们通过远程访问工具连接到服务器系统后,首先对yum进行一下升级,确保 yum 包更新到最新。

yum -y update

末尾出现complete!字样即为成功。

2.安装必要的软件包

其中yum-util 提供yum-config-manager功能,device-mapper-persistent-data和lvm2是device mapper驱动依赖的

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

3.配置yum源

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

4.安装docker

 * 命令参考:可以以下命令**查看**仓库中所有docker版本,并选择特定版本安装*
 yum list docker-ce --showduplicates | sort -r
 sudo yum install docker-ce-17.12.0.ce  #安装特定版本

安装

sudo yum install -y docker-ce docker-ce-cli containerd.io

启动

systemctl enable docker --now

配置加速
新建 daemon.json 文件并配置
这里额外添加了docker的生产环境核心配置cgroup

sudo mkdir -p /etc/docker 

sudo tee /etc/docker/daemon.json <<-'EOF' 
{ 
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"], 
  "exec-opts": ["native.cgroupdriver=systemd"], 
  "log-driver": "json-file", 
  "log-opts": {
    "max-size": "100m" 
  }, 
  "storage-driver": "overlay2" 
} 
EOF

sudo systemctl daemon-reload 

sudo systemctl restart docker

测试

docker version

2.3 创建项目目录并下载配置文件

安装好docker后,我们需要创建项目目录,并去拉取官方的项目docker环境镜像。

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

1、创建 halo目录

mkdir ~/.halo && cd ~/.halo

2、下载配置文件到 halo目录

wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml

3、配置

这一步一般来说使用默认即可,不需要进行改动。

vim ~/.halo/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: 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: false
      path: /h2-console
      enabled: false

halo:

  # Your admin client path is https://your-domain/{admin-path}
  admin-path: admin

  # memory or level (#建议使用level,将数据缓存到磁盘,重启不会清空缓存)
  cache: memory
  1. 如果需要自定义端口,修改 server 节点下的 port 即可。
  2. 默认使用的是 H2 Database 数据库,这是一种嵌入式的数据库,使用起来非常方便。需要注意的是,默认的用户名和密码为 admin 和 123456,这个是自定义的,最好将其修改,并妥善保存。如果需要使用 MySQL 数据库,需要将 H2 Database 的所有相关配置都注释掉,并取配置MySQL 的相关配置。另外,MySQL 的默认数据库名为 halodb,请自行配置 MySQL 并创建数据库,以及修改配置文件中的用户名和密码。
  3. h2 节点为 H2 Database 的控制台配置,默认是关闭的,如需使用请将 h2.console.settings.web-allow-others 和 h2.console.enabled 设置为 true。控制台地址即为域名/h2-console。注意:非紧急情况,不建议开启该配置。
  4. server.compression.enabled 为 Gzip 功能配置,如有需要请设置为 true,需要注意的是,如果你使用 Nginx 或者 Caddy 进行反向代理的话,默认是有开启 Gzip 的,所以这里可以保持默认。
  5. halo.cache 为系统缓存形式的配置,可选 memory 和 level,默认为 memory,将数据缓存到内存,使用该方式的话,重启应用会导致缓存清空。如果选择 level,则会将数据缓存到磁盘,重启不会清空缓存。如不知道如何选择,建议默认。

以上,可不对配置文件进行更改,按默认运行即可。

2.4 拉取Halo镜像并创建容器

1、拉取Halo 镜像

如果最新版本不是1.5.2,可以将1.5.2替换成latest,latest代表最新的镜像版本,docker pull halohub/halo:latest

docker pull halohub/halo:1.5.2

2、创建容器并启动

docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.2
  • -it:开启输入功能并连接伪终端
  • -d:后台运行容器
  • –name:为容器指定一个名称
  • -p:端口映射,格式为主机(宿主)端口:容器端口,可在 application.yaml 配置。
  • -v:工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
  • –restart:建议设置为 always,在 Docker 启动的时候自动启动 Halo 容器。

至此,完成以上操作我们即可访问 http://ip:8090 即可进入 Halo 的安装引导页面了。

3.等待学习…

3.1 关于docker

之前有了解过到这个技术但一直没有接触到,这次是第一次接触,去学习了一下,记录一些自己的理解。

Docker 包括三个基本概念:
● 镜像(Image):Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。个人理解为python的虚拟环境
● 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。运行镜像的地方
● 仓库(Repository):仓库(Repository)类似Git的远程仓库,集中存放镜像文件。类比maven仓库

Halo官方把开发环境复制出来变成镜像上传到docker官方的镜像仓库,提供给开发者使用,避免繁琐的配置后不能运行的尴尬情况。

个人博客网站搭建详细教程记录——基于Halo的快速搭建_第2张图片

  • Docker常用操作

个人博客网站搭建详细教程记录——基于Halo的快速搭建_第3张图片

  • 镜像仓库
    Docker Hub 镜像仓库
//检索镜像
docker search 关键字
//拉取镜像
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

参考: https://www.yuque.com/leader755/blog/azuze1
未完成:docker compose

3.2 关于宝塔面板

也是很早之前就听说过的工具,不知道是干嘛的,这次一起了解了。

官方介绍:
使用宝塔前: 手工输入命令安装各类软件,操作起来费时费力并且容易出错,而且需要记住很多Linux的命令,非常复杂。
使用宝塔后: 2分钟装好面板,一键管理服务器,鼠标点几下就能替代以前的复杂繁多命令,操作简单,看一眼就会使用。

从上述官方描述不难看出,此产品聚焦于解决服务器操作繁琐的情景。使用宝塔面板,可以在可视界面中为服务器安装应用、同步文件、定期执行代码、管理服务,非常方便。

个人理解为通过安装一款软件,为Linux的黑窗口提供一个可视化界面,方便后续在Linux系统上的环境搭建与配置、软件部署与维护等等操作。通过点拖拉拽代替各种命令,确实是在很大程度下降低了新手入门的门槛,很友好、方便的工具,下一次期待尝试。另外在了解域名配置过程中发现宝塔面板可以很方便快速的给同一个站点配置多个域名,下次研究。

3.3 其他

后续计划继续深入Nginx反向代理、halo插件及源码解读、本地部署以及修改为其他数据库等等。

你可能感兴趣的:(个人网站,linux,centos,spring,boot,网络)