如何从零开始搭建一个博客
2025-10-21 00:19:34

自画像

搭建博客并不是一个程序员必须的经历。但是,这是一件很有意义的事情,因为没有什么比自己建一个网站更能作为自己的代言了。所以,如何搭建一个博客呢?
其实真的很简单。我来简述一下我搭建博客的经历。


大概在本月的14号左右,我突然想起来之前知乎上有人和我说过可以搭建一个博客,写写题解什么的。当然,搭一个博客和写题解之间没有必然关系,但是就那几天我突然开始好奇什么是博客。什么“博客”需要“搭建”呢?不查不知道,博客竟然是一类网站的统称。那么,我一个一点网站知识都没有的人,怎么搭起这个博客呢?

下面,请让我简述我的博客是如何搭建起来的。

1.静态框架hexo

因为博客实际上是一种过去盛行的网络社交方式,大多数博客都大同小异,所以,搭建博客很多时候是一件相当同质化的事情。这就意味着,我们可以用相似的框架来搭建自己的博客。

这就是博客框架,它替用户几乎铺平了所有技术困难,而用户可以聚焦在业务问题(如写博客)上。博客框架大致可以分为两类,静态框架和动态框架。后者的学习成本更高,但是可以做出更多的交互。而前者虽然不便于做交互,但是用来写写博客文已经足够了。所以对我而言,性价比最高的方案就是使用静态博客框架搭建自己的博客。

在静态博客框架中,我选择了hexo。没什么理由,只是因为主题多并且学习成本低而已。对于其性能方面或许存在的问题,我的评价是我的境界还不足以让我感受到它的问题。

2.怎么用hexo?

这是一个很现实的问题。对于大多数电脑使用者而言,用电脑几乎等同于与图形化界面打交道。比如,如果你想创建一个微信公众号,你只需要前往微信公众平台在图形化界面注册即可。但是对于博客框架和大多数拓展包而言,它们并不采用图形化界面的交互方式,而是采用命令行工具来完成各项工作。

这就意味着,想使用hexo搭建框架,最好先学一点命令行工具的用法。

命令行工具

原谅我只用过windows系统。在win系统中,有两种命令行工具:cmd和powershall。前者大多用来做基础命令和兼容性,功能有限。此处我们使用powershall。

此外,你还需要安装git。这是一个软件,专门用来管理你的工程代码。鉴于博客本质上就是搭建网站,所以这也是不得不品的一环。安装git之后,你的电脑里还会出现另一个命令行工具:git bash。

所以,git bash和powershall又有什么区别呢?请看chatgpt给出的解释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
1. 运行环境不同

Git Bash

提供一个类 Linux 的 bash shell 环境(基于 MinGW)。

内置了很多常见的 Unix 工具(如 ls、grep、cat、rm)。

默认命令语法更接近 Linux / macOS。

适合习惯 Linux 命令行的用户。

PowerShell

Windows 原生的 shell,基于 .NET。

Git 本身并不自带 PowerShell,但你装了 Git for Windows 后,git.exe 会注册到系统 PATH,因此 PowerShell 也能直接用 git。

命令语法是 PowerShell 风格(Get-Command、| 管道传对象)。

更适合做 Windows 系统管理 + Git 混合场景。

2. 命令行为上的差异

路径格式

Git Bash:用 Linux 风格路径 /c/Users/...

PowerShell:用 Windows 风格路径 C:\Users\...

Git 内部能自动适配,但有时脚本里路径写法要注意。

脚本兼容性

Git Bash 能直接跑 .sh 脚本(Linux 写的脚本几乎不用改)。

PowerShell 只能跑 .ps1,要想跑 .sh,得额外配置(比如用 WSL)。

输出和管道

Git Bash:输出就是 文本,常用 grep、awk 处理。

PowerShell:输出是 对象,可以 git log | Out-File log.txt,但有些 git 输出并不是对象,还是普通文本,这时就当成字符串处理。

3. 体验上的差异

Git Bash

更像在 Linux 下用 Git,教程和 Stack Overflow 示例几乎可以原样照搬。

有补全、颜色支持等。

PowerShell

跟 Windows 系统融合度高,比如直接结合 Windows 文件系统、服务管理。

我们总结一下,大概就是git bash风格上更像linux系统,更能适配各类教程;而powershall和win系统的适配度更高。

所以我怎么用呢?我的评价是默认用powershall,报错出语法错误之后再试试git bash上能不能行。为什么要同时使用这两个命令行工具呢?很简单,因为当你作为初学者使用git时,不免要问问LLM的意见,这个时候LLM就有可能从网络的各个角落给你搜罗来命令,其中很可能相当一部分只能在git bash上使用,但是如果想本地调试博客的话又最好使用powershall。所以,轮着用吧。

对于powershall,只需要知道两个最基本的指令就行了。

1
2
cd <path>
dir

第一个指令是改变你命令行最前面的那个地址。之后你需要将地址改到你博客文件的根目录上才能继续使用hexo的相关命令。
第二个命令是罗列该目录下有什么文件,方便你cd。

好的,现在你知道了怎么用命令行工具切换文件目录了,是时候让我们开始在本地安装我们的hexo框架了。

hexo环境安装

hexo框架是使用nodejs写的。就像C++需要编译才能运行,java需要JDK才能运行,nodejs写的程序也一样,在使用之前,我们还需要安装nodejs。

安装网站:nodejs

此外,在前文中我们提到了git。如果你想更新网站内容,对于hexo框架而言最方便的途径就是使用git。反正git工具对于一个写代码的人而言早晚都要学的,不如就趁现在学一下吧。

安装网站:git

最后,毫无疑问,你需要安装hexo。但是这次,你不需要访问任何网站。nodejs内置了npm包管理器。你只需要输入一串指令就可以自动安装hexo。

1
npm install -g hexo-cli

在powershall中输入。为什么不在git bash中输入呢?因为我没试过。

创建一个博客项目

在环境搭建完毕之后,你需要创建一个博客项目。hexo是一个为你生成博客网站源码的工具,它的产出单元就是博客。所以,创建一个博客。
cd到你觉得合适的地址,输入以下指令:

1
2
3
hexo init myblog   # 创建一个名为 myblog 的博客目录
cd myblog
npm install # 安装依赖

执行完后,你会得到一个完整的博客项目文件夹,里面包括:

  • source/_posts/:放文章的地方
  • themes/:博客外观主题
  • config.yml:全局配置文件

好的,现在你就成功了相当一部分了。你已经有了博客的主要文件,你只需要往里面填内容然后部署即可。

那么,如何填内容呢?我们先来了解一下怎么本地测试。

1
2
3
hexo clean
hexo g
hexo s

这三个指令通常是连着输的,大多数时候你根本不用关心三个指令分别是什么意思,你只需要知道:三个指令输完之后,你会得到一个网址http://localhost:4000/,把它输入到浏览器中你就可以本地预览你的博客网站。大多数时候,预览的结果就是部署得到的结果。

如何写博客?

在上文中你已经学会了hexo的基本用法。现在是时候填充一些内容了。hexo框架最大的优点就是支持markdown语法。这是一个程序员写README的经典标记语法,但是对于初学者来说可能会有一点点门槛。

这里不再罗列markdown的语法。不过,如果你想学markdown,我的经验是你可以先从学obsidian开始。我在b站上找到了一个非常适合初学者学习的obsidian教程。用obsidian学markdown最大的好处就是markdown的效果能立竿见影,高度可视化。教程视频

如果你想写一篇博客,在powershall中输入:

1
hexo new post <post_name>

然后,把myblog整个文件夹丢到vscode里。在source/_posts里,你可以找到“文章名.md”的文件,在这里用markdown语言撰写你的博客。

在写完一篇博客之后,记得保存,随后在终端输入上文中的测试指令,你就可以在本地看到你的博客文章了。

如何使用主题?

在默认情况下,hexo自带了一个主题,你不需要插入主题也可以搭建自己的博客。但是hexo的优势就在于活跃的中文社区与大量的开源主题。如果你不会导入主题的话绝对是一件遗憾。

使用主题并不是一件难事,但是对于初学者(比如我)而言,因为误操作git导致给自己创造了一系列困难是常有的事。所以,在使用主题之前,我们最好先了解一下git和github的基础知识。

如何使用git?

在前文中我们有提到过git。这是一个非常好用的程序管理器,你可以将其类比为码农的游戏存档,但是它的功能比简单的存档更加强大,它可以随时存档,读档,创建分支,合并分支。与其将它比作是一个存档器,不如说是一个功能极强的时间机器。

当然,在此处,你同样只需要了解一些基础知识即可。

1
2
3
4
5
6
7
git add .
git add <file_name>
git commit -m <message>
git branch <branch_name>
git checkout <branch_name>
git log
git branch -m <new-name>

简单来说,第一个命令是将当前目录下的所有文件添加到缓存区,第二个命令是将指定文件添加到缓存区。
第三个命令是提交缓存区的所有文件,形成一次提交,并且带有一条写入的message。
第四条是在当前提交处创建一个分支。
第五个是读档,回档到某个分支的状态。
第六个是查看git提交记录,你可以看到项目的所有提交记录,包括时间,哈希值,message以及分支。
最后一个是修改当前分支的名称。

忘了写了,还有git init,这是一个非常关键的命令,需要在以上命令写之前写入。一个工程只需要写一次就够了。这会告诉git,这里有一个工程文件需要git插手,即初始化git,之后此目录下才能使用git命令。

看不懂上面是什么意思?没关系。尽管git本身是命令行工具,但是当前网路上不乏许多直观的教程。下面推荐几个

Learn Git Branching - 用游戏式的交互直观展示git工作流程。在branch方面更加清晰。
Git Tutorial For Dummies - 顾名思义,给蠢蛋上的git教程。跟着走一遍就会用git了。

然而,只用git是不够的,安装主题需要从github上导入,因此,你也必须学习一点github知识。

如何使用github?

hub在英文中表示“中心”,github即git中心。尽管是一个高度图形化的网站,github的使用很大程度上依赖于git。
下面我们罗列几个与github相关的git指令。

1
2
3
4
git clone <远程仓库地址> <本地相对地址> - 将github上的某仓库克隆到本地
git remote add origin <远程仓库地址> - 给当前项目添加 GitHub 仓库(一般第一次 push 时用)
git push origin main - 将本地 main 分支推送到 GitHub 上
git push -u origin main - 第一次推送时用,之后可直接 git push

比如,如果我希望我的博客使用Oranges主题,我就这么做:

  • cd到博客根目录/myblog
  • git clone https://github.com/zchengsite/hexo-theme-oranges themes/Oranges
    输入第二行的命令之后,你的themes文件夹中就会出现Oranges文件。这时候你就可以使用该主题了。

注意:不同主题各自有自己的配置文件,请参考github上各个主题的readme.md文件了解配置方法。

有的主题会建议你使用submodule方式添加主题。这需要一定的git基础,并且会造成提交部署上流程的复杂化。反正我暂时不会。我的方案是直接clone到本地,之后删除其中的所有.git相关的文件,这样这些导入的文件就不会被视作是一个子仓库,而是你工程文件的一部分。除非你有频繁更新主题的需求,一般而言导入一次就不会再去更新主题了。

如何部署博客?

通过上文的流程,你已经可以在本地编辑和预览你的博客网站了。但是这不够,因为你需要让它部署到公网上才能让它被其他人看到。
所以,如何部署呢?我们需要先了解一些基础知识。

  • 首先,你的博客需要一个地方存放它的工程文件,即你的myblog文件夹。这个位置不能是你的本地,因为博客网站24小时连轴转,你的电脑可是需要休息的。
  • 此外,你的博客需要一个域名,例如baidu.com。不然别人怎么访问你的博客。
  • 之后,你需要一个平台来代替你的电脑来运行网站。当然如果你会搭自己的服务器那当我没说,不过有这实力也不至于来看我的文章了。

感觉很复杂吗?没关系,我们一条一条来。

首先第一条。在哪里可以存放你的工程文件呢?对于一个毫无编程基础的人而言,你可能会想到网盘。很不错了,但是我们有更优化的方案。这就是我们前文中提到的github。
在这里,我们先正式介绍一下github。

什么是github?

我知道你可能很想吐槽为什么我先讲怎么用github再介绍github,但是你先别急。我的文章就是这么意识流。

GitHub,是一个基于git的代码托管平台。它就像是一个几乎无限大的网盘,你可以在这里搭建仓库,存放代码,甚至和他人合作完成项目。

怎么做到无限大的?好吧,实际上并不是无限大。github要求单个仓库上线大小为1GB,单个文件上限大小为100MB。但是,对于代码这种纯粹字符组成的文件,一般而言空间占用量很小,加上得益于git的高效储存,对于大部分代码工程而言使用github都是足够使用了。当然,如果你想在这里上传视频等大体积文件,这就有点困难了。

如何在github上存放你的工程文件?

非常简单。在我们前文中有讲过如何把本地文件上传到github。现在我再来详细介绍一遍。

  • 首先,创建一个仓库。你可以在github中轻松找到创建仓库的按键。输入你想命名的仓库名就大功告成了。
  • 之后,进入你的仓库界面。复制此处的网址。
  • git remote add origin <远程仓库地址>, 将当前项目链接到你刚创建的github仓库。
  • git add . git commit -m <message>,将当前项目提交一次git存档。
  • git push -u origin main,将当前提交上传到github。

这时候,去你的github仓库里,你就可以看到你的工程文件成功出现在了那里。成功上传。

注意:之后在相同的工程文件中,你只需要输入git push就可以代替git push -u origin main,更加快捷。

如何获得域名?

这是全过程最简单的一环,拿钱摆事即可。

国内的主要域名商就是阿里云和腾讯云。我个人是在腾讯云上买的域名。

域名的不同价格主要就是后缀决定的。不要被某些域名较低的首年价格吸引了,没必要搞一个太花里胡哨的域名,我个人还是更追求稳定。

在腾讯云上购买域名之后,你会在这里找到相关的工作台。这很重要,之后部署博客的时候会用到。

部署博客。

现在,你已经有了域名和博客网站的内容,是时候让它部署到公网上了。

这时候,我们需要寻求云计算服务平台的帮助,来托管我们的网站代码。在其中,我个人选择的是vercel,在中文社区广受好评的托管平台。

值得注意的是,如果你去问chatgpt或者gemini等外国LLM,你可能会被告知vercel在国内的速度并不好,并推荐使用cloudflare。然而事实截然相反,我身边用过的人都说cf又慢又爱抽风。事实证明,有时候有经验的真人会比大数据更懂你的需求。

至少在vercel中,部署博客几乎是一条龙服务,跟着引导走就行了。这边提几个可能产生误会的地方。

1.如何使用自己的域名?

这里需要引入DNS的概念。

DNS:Domain Name System,域名系统,用来实现域名和IP地址的相互映射。简单来说,用户想通过域名来访问网站,但是计算机需要IP地址。DNS就提供了这样的寻址功能。

如果我们想通过域名来访问自己的博客,我们就需要让我们的域名通过DNS记录链接到云计算服务平台的IP地址。

所以,这时候我们需要返回域名商的工作台。在此处为我们的域名添加DNS记录。此处,你需要去获知你所选云计算服务平台的IP地址。

我其实不太明白怎么获知这个IP地址,误打误撞就填对了。所以需要你自己去探索方法。

2.如何更新?

如果你想更新博客,你需要重新部署一遍吗?

答案是不用。vercel这样的平台会自动检测github仓库的提交并采用当前分支的最新记录。你只需要git push一下你就可以看到公网上你的博客内容更新了。

尾声

这是我正式写的第一篇博客。码字码了半天。因为实际上本人也是刚刚开始接触博客,没有很丰富的经验与知识基础,希望多多见谅。

因为现在没有图床,导入图片不太方便,之后希望能尽快解决。

上一页
2025-10-21 00:19:34