cisca
发布于 2026-04-18 / 25 阅读
0
0

Halo 个人博客搭建实战记录

2026年4月18日,我的个人博客成立了!之前一直是在 workspace 写文章,后来这个网站不知道什么时候崩了,就在本地的笔记软件写文章。但本地笔记不好分享,又恰好在2026.4.16抢到了一年的阿里云2C2G服务器,想着服务器空着也是空着,不如搭个博客网站,把一些笔记和文章放上去,以便展示。

第一篇文章就记录一下怎么用 Halo 把博客搭起来的吧,总体来说还是非常简单的!

0. 运行环境

  • 服务器:阿里云 (2核2G)
  • 操作系统:Ubuntu 22.04 LTS
  • 部署方式:Docker 容器化
  • 博客引擎Halo 2.20

1. 准备步骤

由于我这个服务器只有2G内存,后续跑MySQL、博客等应用时内存很快就会见底,为防止系统因为OOM杀掉核心进程,必须得给它加一道保险——把一部分硬盘当内存用,即Swap空间。阿里云默认是关闭Swap的,我们现在就用原生命令给它开一个 2GB 的 Swap 空间。(注:如果你的内存充足或已开启Swap空间,可以跳过这一块)

1.1 在根目录切出一块2G大小的文件

sudo fallocate -l 2G /swapfile

1.2 修改权限,只允许 root 读写(防止安全泄漏)

sudo chmod 600 /swapfile

1.3 把这个文件格式化为 Swap 专属格式

sudo mkswap /swapfile

1.4 正式激活它!

sudo swapon /swapfile

1.5 让它开机自启(写入系统挂载配置)

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

1.6 验证

free -h

成功了的话就能看到 Swap 的 total 从之前的 0B 变成 现在的 2.0Gi 了。

image-GfwV.png

2. 下载并配置docker

这里我采用的是 docker 容器化部署,有了 docker 后直接拉取 halo 镜像就行了,会非常方便。

2.1 使用阿里云镜像安装docker

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

2.2 创建配置文件夹

sudo mkdir -p /etc/docker

2.3 写入加速地址

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://mirror.baidubce.com",
    "https://dockerproxy.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}
EOF

2.4 重新加载配置并重启 Docker 服务(让刚才的加速地址生效)

sudo systemctl daemon-reload
sudo systemctl restart docker

2.5 验证加速器是否生效

docker info

看到最下面那一行,如果有刚才填的那几个网址就说明配置成功了:

image-xpAj.png

3. 部署Halo博客项目

有了 docker 后博客项目只需简单几步操作就能部署成功了。

3.1 拉取Halo镜像

docker pull halohub/halo:2.20

3.2 创建宿主机数据目录

我们在当前用户的 Home 目录下建一个 .halo2 的隐藏文件夹(这是 Halo 2.x 版本的默认工作目录):

mkdir -p ~/.halo2

3.3 一键拉起 Halo 容器

文件夹建好后,直接用一条命令把容器跑起来,并且把刚刚建好的文件夹映射进去:

docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.20

参数解释:

  • -d: 后台静默运行,不卡住你的终端。
  • --name halo: 给这个容器起个名字叫 halo。
  • -p 8090:8090: 把容器内部的 8090 端口,暴露给宿主机的 8090 端口。
  • -v ~/.halo2:/root/.halo2: 核心操作!把你刚建的目录和容器内部的存储目录打通

3.4 验证程序是否运行

docker ps

STATUS 栏是 Up 即表示程序已经在后台稳稳跑起来了:

image-KwBG.png

4. 访问博客项目

4.1 开放安全组

云服务器默认是有安全组/防火墙拦截拦截外部流量的。容器虽然跑起来了,但外面还进不去。 你必须去云服务商的管理控制台,找到这台服务器的安全组(或防火墙)设置,手动添加一条规则:

  • 协议:TCP
  • 端口范围:8090
  • 授权对象/源IP:0.0.0.0/0 (允许所有人访问)

4.2 浏览器访问

开放完毕后,直接在你的电脑浏览器里输入:

http://<你的云服务器公网IP>:8090

即可跳转到 Halo 精美的初始化安装界面了,跟着界面设置一下账号和密码之类的,个人博客就正式宣告落成了!


评论