从零搭建免费开源个人博客:Halo+JDK21 实战教程

从零搭建免费开源个人博客神器!用Halo+JDK21打造高颜值独立站(完整实战版)

含环境配置、源码构建、前端启动、数据库切换、主题美化、插件扩展、部署上线全链路教程|附多张关键截图 + 常见问题解决方案 + 进阶技巧
你是否也想拥有一个:
属于自己的技术博客?
支持Markdown写作、响应式设计、SEO友好?
不被平台限流、内容完全自主掌控?
那你一定不能错过国产开源项目 —— Halo!
它是一款基于 Java 的现代化博客/内容管理系统(CMS),由国内开发者主导开发,中文文档齐全、社区活跃、界面优雅、功能强大。更重要的是:完全免费+开源可控+易于二次开发!
本文将带你从零开始完整部署Halo本地开发环境,并延伸至生产部署、域名绑定、HTTPS 加密等进阶操作,适合所有想打造个人品牌的程序员、技术博主、知识创作者阅读和收藏。

一、为什么选择 Halo?不只是“另一个博客系统”

在众多静态博客(如 Hexo、VuePress)和动态系统(WordPress、Typecho)之间,Halo 凭什么脱颖而出?
对比维度
Halo
WordPress
Hexo/Gatsby
技术栈
Spring Boot+Vue3
PHP+MySQL
Node.js+静态生成
是否需要服务器
可本地运行 / Docker快速部署
需LAMP环境
需 GitPage/Vercel
中文支持
极佳(原生中文界面)
一般(依赖翻译插件)
依赖主题
主题生态
丰富且持续更新
海量但多为英文
较多但维护参差
插件机制
支持热插拔、API 扩展
成熟但部分收费
有限
数据库支持
H2(开发)、MySQL、PostgreSQL
MySQL
无(文件存储)
是否支持后台管理
完整可视化后台
支持
需本地编辑
总结一句话:Halo是「动静结合」的理想选择 ——既有动态系统的灵活性与交互能力,又有现代前端的流畅体验,还特别适合Java技术栈的同学学习与定制。

二、第一步:准备工作清单(建议先收藏)

在正式动手前,请确保你的电脑已安装以下工具,并检查版本是否符合要求。这一步是基础,务必仔细核对,避免后续出现兼容性问题。

2.1 必备软件清单

软件
版本要求
下载地址/安装方式
JDK
JDK 21(必须,不可低于此版本)
Gradle
使用Wrapper自动管理(推荐9.2.0+)
无需单独下载,项目自带Wrapper,会自动适配版本
Node.js
≥18.x(建议18.17+ 或 20.x,避免版本过低导致依赖安装失败)
官网:nodejs.org,下载对应系统的LTS版本
pnpm
≥8.x
安装命令:npm install -g pnpm(需先安装Node.js)
Git
最新版
官网:git-scm.com,安装时建议勾选“添加到系统环境变量”
IntelliJ IDEA
Community/Ultimate版本均可(建议2024+,对JDK21支持更好)
浏览器
无版本要求,需支持现代前端特性
Chrome/Firefox/Edge均可,推荐Chrome
提示:安装完成后,可通过命令行验证版本是否达标。例如:
java -version # 应显示1.21.x相关版本信息 node -v # 应显示v18.x或v20.x pnpm -v # 应显示8.x+ git –version # 显示最新版本号即可

2.2 特别提醒:JDK版本问题(高频踩坑点)

Halo当前主干分支(v2.x)强制依赖JDK 21!如果你使用的是 JDK8、11或17,启动项目时会遇到如下错误:
java.lang.UnsupportedClassVersionError: com/halo/HaloApplication has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version only recognizes class file versions up to 55.0
解决方案:必须升级到 JDK 21,并在 IDEA 中正确设置 Project SDK(后续步骤会详细说明)。

三、第二步:获取Halo源码(两种方式任选)

获取源码是搭建本地开发环境的第一步,推荐优先使用Git克隆方式,方便后续更新源码和提交自定义修改;网络不佳时可选择下载ZIP包。

3.1 方式一:克隆GitHub官方仓库(推荐开发者)

1. 打开命令行工具(Windows:CMD或PowerShell;Mac/Linux:Terminal)。
2. 进入你想存放项目的目录(例如Windows:F:IdeaProjects),执行克隆命令:
git clone https://github.com/halo-dev/halo.git
3. 进入项目目录:
cd halo
优化建议:使用 SSH 协议可加快拉取速度(需提前配置GitHub SSH密钥),替换命令为:
git clone git@github.com:halo-dev/halo.git

3.2 方式二:直接下载ZIP包(适合网络不佳用户)

1. 前往Halo官方GitHub Releases页面:https://github.com/halo-dev/halo/releases
2. 找到最新版本的源码包(标注为“Source code (zip)”,例如 halo-2.20.0.zip),点击下载。
3. 下载完成后,解压到你指定的项目目录(例如F:IdeaProjectshalo)。
4. 打开IntelliJ IDEA,通过“File → Open”选择解压后的项目根目录,导入项目。

四、第三步:配置Gradle环境(避免卡顿的关键)

很多同学启动Halo项目失败,并非代码问题,而是Gradle缓存路径不合理或网络问题导致依赖下载失败。下面一步步优化配置,确保构建顺利。

4.1 设置自定义Gradle用户目录(推荐)

默认情况下,Gradle的缓存文件会存放在系统盘(C盘)的用户目录下,长期使用会导致C盘空间紧张,还可能被杀毒软件误删。建议修改为非系统盘路径:
1. 打开IntelliJ IDEA,进入设置界面:
– Windows:File → Settings(快捷键Ctrl+Alt+S)
– Mac:IntelliJ IDEA → Settings(快捷键Cmd+,)
2. 在左侧导航栏中找到“Build, Execution, Deployment → Gradle”。
3. 在右侧“Gradle user home”处,点击浏览按钮,选择自定义路径(例如:F:RootApplactiongradle-9.2.0)。
4. 点击“Apply”(应用)和“OK”(确认)保存配置。
配图说明:此处应插入“IDEA中Gradle设置界面截图”,标注重点:“自定义缓存路径,避免C盘爆满”,插入位置:本步骤下方居中。
修改后的好处:
  • 避免C盘空间被大量缓存文件占用,防止系统卡顿;
  • 方便添加杀毒软件白名单,防止.gradle缓存文件被误删;
  • 多项目可共享缓存,后续构建其他Gradle项目时无需重复下载依赖,提升构建效率。

4.2 检查并优化gradle-wrapper.properties文件

该文件用于配置Gradle Wrapper的行为,确保其使用我们自定义的缓存路径和正确的Gradle版本。
1. 找到文件路径:项目根目录 → gradle → wrapper → gradle-wrapper.properties
2. 打开文件,确认关键配置如下(若不一致则修改):
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=file:/F:/Users/wilber/IdeaProjects/halo/gradle/wrapper/dists/gradle-9.2.6-bin.zip validateDistributionUrl=true
3. 离线/网络不稳定环境优化:
如果你的网络环境较差,或处于离线状态,可以提前下载对应版本的Gradle压缩包(例如gradle-9.2.6-bin.zip),放在本地目录(如上述配置中的F:/Users/wilber/IdeaProjects/halo/gradle/wrapper/dists/),然后修改distributionUrl为本地路径。
注意事项:Windows系统路径中的反斜杠“”需要转义为“\”,或直接使用正斜杠“/”替代,否则会导致路径识别失败。
配图说明:此处应插入“gradle-wrapper.properties配置文件截图”,标注重点:“注意斜杠转义 & 路径正确性”,插入位置:代码块下方。

五、第四步:导入项目&正确设置JDK 21

完成上述配置后,回到IntelliJ IDEA,等待项目自动进行Gradle同步(首次同步可能需要几分钟,取决于网络速度)。同步完成后,必须正确设置JDK版本,否则无法启动项目。

5.1 设置Project SDK为JDK 21

1. 进入Project Structure界面:
– Windows:File → Project Structure(快捷键Ctrl+Alt+Shift+S)
– Mac:File → Project Structure(快捷键Cmd+;)
2. 在左侧导航栏选择“Project”,右侧进行如下配置:
  • Project SDK:选择已安装的JDK 21(例如Oracle OpenJDK 21.0.9)。如果下拉列表中没有,点击“New”,找到JDK 21的安装目录(如C:Program FilesJavajdk-21.0.9),添加后选择。
  • Project language level:选择“21 – Switch expressions etc.”(必须与JDK版本匹配)。
3. 配置Modules:在左侧导航栏选择“Modules”,点击项目下的各个模块(如application、api、common等),在右侧“Sources”选项卡中,确保“Language level”也设置为21。
4. 点击“Apply”和“OK”保存配置。
配图说明:此处应插入“Project Structure中设置JDK 21的界面截图”,标注:“切勿选择1.8或17,否则启动失败!”,插入位置:本步骤之后。

5.2 常见问题:JDK版本设置错误的报错处理

若未正确设置JDK 21,启动项目时会出现经典报错:
Unsupported class file major version 65
错误原因:JVM无法识别JDK 21编译出的字节码文件。Java版本与class file major version的对应关系如下:JDK 21对应65,JDK 17对应61,JDK 11对应55,JDK 8对应52。出现该错误说明当前使用的JDK版本低于21,需重新检查并设置Project SDK。

六、第五步:启动前端工程(UI 层)

Halo采用前后端分离的架构设计,前端代码位于项目根目录的/ui目录下,需要单独启动前端开发服务器,才能正常访问博客界面。

6.1 安装前端依赖

1. 打开命令行工具,进入项目的ui目录:
cd ui
2. 执行pnpm install命令安装依赖:
pnpm install
注意:首次安装依赖时,由于网络原因可能较慢,甚至出现安装失败。建议先配置国内镜像源加速,执行以下命令:
pnpm config set registry https://registry.npmmirror.com
配置完成后,重新执行pnpm install即可。

6.2 启动前端开发服务器

依赖安装完成后,执行以下命令启动前端服务:
pnpm dev
启动成功后,命令行会输出类似如下日志:
ROLLDOWN-VITE v7.2.59 ready in 5721 ms Local: http://localhost:8090
说明:前端服务已成功启动,默认端口为8090。打开浏览器,输入地址http://localhost:8090即可访问Halo的前端界面。
配图说明:此处应插入“终端成功运行pnpm dev的命令行截图”,标注:“看到这个就表示前端启动成功!”,插入位置:日志输出下方。

七、第六步:初始化站点(第一次必做)

首次访问Halo前端界面时,会自动跳转到站点初始化页面,这一步需要设置博客的基础信息,是后续使用的前提。

7.1 执行初始化操作

1. 浏览器访问初始化地址:http://localhost:8090/system/setup
2. 填写以下关键信息(请务必牢记):
  • 博客名称:例如“我的极客笔记”“技术成长日志”,可后续在后台修改。
  • 管理员用户名:用于登录后台的账号,建议设置简单好记的名称。
  • 管理员密码:建议设置复杂密码(包含大小写字母、数字、特殊符号),保障账号安全。
  • 邮箱:用于找回密码、接收系统通知等,填写有效邮箱地址。
3. 填写完成后,点击“提交”按钮,系统会自动创建数据库表结构和初始数据,耗时约1-2分钟(取决于电脑配置)。

7.2 重要提醒:H2数据库仅适用于开发测试

初始化页面顶部会提示:“正在使用 H2 数据库”。这里需要重点注意:H2是嵌入式数据库,仅适用于本地开发和测试环境,不适合生产环境(存在数据丢失风险,性能也无法满足线上需求)。生产环境必须切换为MySQL或PostgreSQL数据库(后续步骤会详细说明)。
配图说明:此处应插入“Halo初始化设置页面截图”,标注:“记住你的登录信息,后续管理要用”,插入位置:本段落下方。

八、第七步:登录后台,认识Halo控制台

站点初始化完成后,系统会自动跳转至登录页面。输入刚才设置的管理员账号和密码,即可登录Halo后台管理系统,开始熟悉核心功能模块。

8.1 登录后台

1. 登录地址:http://localhost:8090/console(初始化完成后自动跳转,也可手动输入)。
2. 输入管理员用户名和密码,点击“登录”,即可进入Halo后台首页。

8.2 核心功能模块一览

Halo后台界面简洁直观,左侧为功能菜单栏,核心模块如下表所示:
模块
功能说明
内容管理
发布文章、创建页面、管理草稿、查看评论等核心内容操作。
分类与标签
创建文章分类、添加标签,用于组织内容结构,方便读者查找。
主题中心
浏览、安装、切换博客主题,自定义主题外观(如配色、布局)。
插件市场
安装评论系统、SEO优化工具、访问统计、图片床等扩展插件,增强博客功能。
系统设置
配置博客基本信息(如副标题、Logo)、邮件服务、第三方登录(GitHub、Gitee)、安全设置等。
数据备份
导出博客数据(文章、评论、配置),导入历史备份,防止数据丢失。
配图说明:此处应插入“Halo后台管理界面全景图”,标注编号区域:“1=内容,2=主题,3=插件…”,插入位置:本节末尾。

8.3 小技巧

1. 点击左侧菜单栏顶部的折叠按钮,可折叠菜单栏,节省页面空间,专注于内容编辑。
2. 后台支持暗黑模式切换:点击右上角的用户头像,在下拉菜单中选择“暗黑模式”,适合夜间操作,保护视力。

九、第八步:更换数据库(从H2到MySQL)

如前文所述,H2数据库仅适用于开发测试,为了保障数据安全和系统性能,准备部署到生产环境前,必须切换为MySQL数据库(Halo也支持PostgreSQL,操作类似)。

9.1 第一步:创建MySQL数据库

1. 确保你的本地或服务器已安装MySQL(推荐版本8.0+),并启动MySQL服务。
2. 登录MySQL客户端(可使用Navicat、DataGrip等工具,或命令行),执行以下SQL语句创建Halo专用数据库:
CREATE DATABASE halo_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
说明:
  • halo_db:数据库名称,可自定义(后续配置文件需对应)。
  • utf8mb4:字符集,支持所有Unicode字符(包括emoji表情),避免中文乱码。
  • utf8mb4_unicode_ci:排序规则,不区分大小写,适合中文检索。
3. 验证数据库创建成功:执行以下SQL语句,查看是否存在halo_db数据库:
SELECT NAME, CONVERT(DATA USING utf8) AS data_column, version FROM extensions;
配图说明:此处应插入“检查本地MySQL数据库的查询结果截图”,插入位置:本步骤之后。

9.2 第二步:修改Halo配置文件

需要修改Halo的数据源配置,使其连接到创建的MySQL数据库。
1. 找到配置文件路径:项目根目录 → src → main → resources → application.yaml
2. 打开application.yaml文件,找到spring.datasource相关配置,替换为以下内容:
spring: datasource: url: jdbc:mysql://localhost:3306/halo_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver
参数说明:
  • url:MySQL连接地址。localhost表示本地MySQL,若MySQL部署在远程服务器,替换为服务器IP;3306是MySQL默认端口,若修改过端口需对应更改;halo_db是刚才创建的数据库名称。
  • username:MySQL登录用户名(默认是root)。
  • password:MySQL登录密码(替换为你的实际密码)。
  • driver-class-name:MySQL驱动类名(MySQL 8.0+对应com.mysql.cj.jdbc.Driver,5.x对应com.mysql.jdbc.Driver)。

9.3 第三步:添加MySQL驱动依赖

Halo默认不包含MySQL驱动依赖,需要手动在build.gradle.kts中添加:
1. 找到文件路径:项目根目录 → build.gradle.kts
2. 打开文件,在dependencies代码块中添加以下依赖:
implementation(“mysql:mysql-connector-java:8.0.33”)
3. 保存文件后,IntelliJ IDEA会提示Gradle项目需要同步,点击“Sync Now”进行同步,自动下载MySQL驱动依赖。

9.4 验证数据库切换成功

1. 重新启动Halo后端服务(在IDEA中找到HaloApplication类,点击运行按钮)和前端服务(pnpm dev)。
2. 访问http://localhost:8090,使用之前设置的管理员账号登录。
3. 登录后,可在后台“系统设置 → 数据备份”中查看数据库类型,或直接查看MySQL的halo_db数据库,若存在多张以halo_开头的表,说明切换成功。
常见问题:启动时提示“Could not create connection to database server”,可能原因:
  • MySQL服务未启动;
  • url中的IP、端口、数据库名称错误;
  • username或password错误;
  • MySQL未允许远程连接(若MySQL在远程服务器)。

十、第九步:美化你的博客(主题推荐)

Halo拥有丰富的主题生态,通过更换主题可以快速改变博客的外观风格,适配不同的内容定位(技术博客、文艺博客、个人作品集等)。

10.1 主题安装方法

Halo支持在线安装和手动上传两种主题安装方式,推荐优先使用在线安装(简单快捷):

10.1.1 在线安装

1. 登录Halo后台,点击左侧菜单栏“主题中心”。
2. 在主题市场中浏览可用主题,点击主题卡片查看预览效果。
3. 找到喜欢的主题后,点击“安装”按钮,等待安装完成。
4. 安装完成后,点击“启用”按钮,即可将该主题设置为当前博客使用的主题。

10.1.2 手动上传安装(适合主题市场未收录的主题)

1. 从主题作者官网或GitHub下载主题包(格式为.jar或.zip)。
2. 登录Halo后台,进入“主题中心”,点击右上角“上传主题”。
3. 选择下载的主题包,点击“确定”,等待上传并安装完成。
4. 安装完成后,点击“启用”即可。
注意:安装主题后,建议重启Halo服务,确保主题的所有功能正常生效。

10.2 高颜值主题推荐

以下是几款经过市场验证的优质主题,涵盖不同风格,适合各类博主:
主题名称
特点
适用场景
Sakura
日系清新风,配色柔和,动画效果细腻,支持多种布局模式。
文艺博主、生活记录类博客
Anatole
极简主义风格,专注内容展示,页面加载速度快,SEO友好。
技术博客、干货分享类博客
KeepIt
功能全面,支持自定义导航栏、侧边栏、广告位,适配移动端。
综合类博客、个人品牌站
Butterfly
华丽动画效果,支持多种插件集成(评论、统计、图片预览),高度可定制。
个性化博客、技术爱好者个人站
配图说明:此处应插入“前台博客首页预览图”,展示Sakura或Butterfly主题效果,加水印:“我的 Halo 博客 @2025”,插入位置:本章节末尾。

十一、第十步:增强功能(必装插件推荐)

插件是Halo的核心优势之一,通过安装插件可以快速扩展博客功能,无需手动修改代码。以下是几款提升博客体验的必装插件,覆盖评论、SEO、统计等核心需求。

11.1 插件安装方法

与主题安装类似,Halo插件支持在线安装和手动上传:
1. 登录Halo后台,点击左侧菜单栏“插件市场”。
2. 在线安装:在插件市场搜索插件名称,点击“安装”,等待完成后点击“启用”,根据提示配置插件参数(如API密钥、回调地址)。
3. 手动上传:下载插件的.jar包,点击“上传插件”,选择文件后安装启用。

11.2 必装插件推荐

插件
用途
推荐指数
配置要点
Waline 评论系统
轻量级无后端评论系统,支持Markdown、表情、登录验证(GitHub/Gitee),数据存储在云端或自建服务。
⭐⭐⭐⭐⭐
需配置服务端地址、Access Key、Secret Key(自建或使用官方服务)。
Twikoo
类似Waline,支持腾讯云/阿里云/LeanCloud存储,无需自建服务,部署简单。
⭐⭐⭐⭐☆
选择存储服务商,配置对应的环境ID、密钥。
百度/Google SEO提交
自动将新发布的文章链接推送给百度、Google搜索引擎,加快收录速度,提升SEO排名。
⭐⭐⭐⭐
需在百度资源平台、Google Search Console获取站点验证信息和推送API密钥。
RSS Feed
生成博客的RSS订阅源,方便读者通过RSS阅读器(如Feedly)订阅更新。
⭐⭐⭐☆
配置订阅源标题、描述、展示文章数量。
访问统计(不蒜子)
免费轻量级访问计数器,展示网站总访问量、今日访问量、文章阅读量。
⭐⭐⭐⭐
无需复杂配置,启用后自动生效,可自定义统计图标位置。
图片压缩上传
上传图片时自动压缩体积,节省服务器存储空间,提升页面加载速度。
⭐⭐⭐☆
配置压缩质量(如80%)、最大尺寸限制。

十二、第十一步:如何部署上线?四种主流方案

本地环境跑通后,接下来需要将博客部署到公网,让其他人可以通过域名访问。以下是四种主流部署方案,覆盖不同需求(简单快捷、自定义程度高、低成本、本地私有部署)。

12.1 方案一:Docker 一键部署(最简单,推荐新手)

Docker可以快速构建隔离的运行环境,无需手动配置JDK、MySQL等依赖,是最省心的部署方式。

12.1.1 前提条件

1. 服务器已安装Docker和Docker Compose(推荐)。
2. 服务器已安装MySQL(或使用Docker容器化的MySQL)。

12.1.2 部署命令

执行以下命令启动Halo容器(替换对应的参数值):
docker run -d –name halo -p 8090:8090 -e SPRING_PROFILES_ACTIVE=mysql -e HALO_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.cj.jdbc.Driver -e HALO_DATASOURCE_URL=”jdbc:mysql://your-ip:3306/halo_db?useUnicode=true&characterEncoding=utf-8&useSSL=false” -e HALO_DATASOURCE_USERNAME=root -e HALO_DATASOURCE_PASSWORD=your_password -v ~/.halo2:/root/.halo2 halohub/halo:2.21
参数说明:
  • -d:后台运行容器。
  • –name halo:给容器命名为halo,方便后续管理。
  • -p 8090:8090:端口映射,将容器的8090端口映射到服务器的8090端口。
  • -e:设置环境变量,指定使用MySQL数据库,配置数据库连接信息。
  • -v ~/.halo2:/root/.halo2:数据卷挂载,将Halo的配置文件、主题、插件等数据挂载到服务器的~/.halo2目录,防止容器删除后数据丢失。
  • halohub/halo:2.21:使用的Halo镜像及版本(可替换为最新版本)。
优点:环境隔离、部署快速、迁移方便(只需复制~/.halo2目录)、易于维护和升级。

12.2 方案二:Nginx 反向代理 + 域名绑定

直接通过8090端口访问不够友好,配置Nginx反向代理后,可以使用域名访问,并支持HTTPS加密、负载均衡等高级功能。

12.2.1 配置Nginx反向代理

1. 服务器安装Nginx(CentOS:yum install nginx;Ubuntu:apt install nginx)。
2. 编辑Nginx配置文件(默认路径:/etc/nginx/conf.d/default.conf 或 新建blog.conf):
server { listen 80; server_name blog.yourname.com; # 替换为你的域名 location / { proxy_pass http://localhost:8090; # 代理到Halo的8090端口 proxy_set_header Host $host; # 传递主机名 proxy_set_header X-Real-IP $remote_addr; # 传递真实IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 传递代理链IP } }
3. 检查配置文件语法是否正确:
nginx -t
4. 重启Nginx生效:
systemctl restart nginx
5. 域名解析:登录你的域名服务商(如阿里云、腾讯云),添加A记录,将blog.yourname.com指向服务器的公网IP。
完成后,访问http://blog.yourname.com即可打开你的博客。

12.2.2 配置HTTPS加密(免费证书)

为了提升网站安全性和信任度,建议配置HTTPS(显示绿色小锁标志)。可通过Let’s Encrypt申请免费证书:
1. 安装Certbot工具:
– CentOS:yum install certbot python3-certbot-nginx
– Ubuntu:apt install certbot python3-certbot-nginx
2. 申请并自动配置证书:
sudo certbot –nginx -d blog.yourname.com
3. 按照提示操作(输入邮箱、同意协议、选择是否重定向HTTP到HTTPS),完成后Certbot会自动修改Nginx配置,启用HTTPS。
4. 验证:访问https://blog.yourname.com,查看是否显示绿色小锁。
说明:Let’s Encrypt证书有效期为90天,Certbot会自动配置定时任务续期,无需手动操作。

12.3 方案三:云服务器部署(阿里云/腾讯云,推荐生产环境)

云服务器是最稳定的生产环境部署方案,适合长期运营的博客。推荐选择阿里云ECS或腾讯云CVM,性价比高,售后完善。

12.3.1 推荐配置

– 服务器配置:1核2G内存,40G云盘(入门级,足够个人博客使用)。
– 操作系统:CentOS 7+ 或 Ubuntu 20.04(64位)。
– 网络:公网IP,开放80(HTTP)、443(HTTPS)、22(SSH)端口(在云服务商的安全组中配置)。
– 域名:需完成ICP备案(国内服务器必须备案,备案流程约1-2周,免费)。

12.3.2 部署流程(整合Docker+Nginx)

1. 购买云服务器后,通过SSH登录服务器(使用工具如Xshell、Putty)。
2. 安装Docker和Docker Compose:
# 安装Docker curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun # 启动Docker并设置开机自启 systemctl start docker systemctl enable docker # 安装Docker Compose curl -L “https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
3. 安装MySQL(可使用Docker容器):
docker run -d –name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_password -e MYSQL_DATABASE=halo_db -v mysql-data:/var/lib/mysql mysql:8.0 –character-set-server=utf8mb4 –collation-server=utf8mb4_unicode