本文章全程以阿里云服务器为例。

域名

首先是注册并购买一个喜欢的域名,在购买时需要选择一个合适的顶级域名,通过下面的链接可以查看阿里云提供的域名的注册价格和续费价格。

域名价格总览_域名定价_域名续费-阿里云万网


购买完域名后,如果希望别人用这个网址来访问你的网站的话,就需要域名解析。

进入阿里云的解析控制台:云解析DNS

点击解析设置后找到 快速添加网站解析

image-20260708111051797

在选择网站域名处,如果不需要 blog.xxx 或 test.xxx 这种地址,那么勾选前两个即可。

“请输入网站的IP”里填入你的服务器的公网 IPv4 地址,如果你有多台服务器,那么就一行填一个服务器的公网IP。


想要搭公开网站,给别人访问的话就需要备案。

阿里云提供了ICP备案服务 :网站备案_ICP备案_备案迁移_App备案_小程序备案_备案-阿里云

点击开始备案后,根据要求如实填写即可。


如果我们现在访问域名地址的话会显示不安全,这是因为没有配置 SSL 证书,SSL证书的主要作用就是:加密,防篡改,证明网站身份。

我们可以通过下面这个网站进行 SSL证书 的自动部署。

https://httpsok.com/index?redirect=/console/dashboard

登录后,选择申请SSL证书。由于需要保护所有的同级域名,所以在证书申请页面中,填写通配符域名。

image-20260709103745162

域名验证部分,按照参考文档配置即可。

安装宝塔面板

由于我们在搭建博客的过程中,需要操控服务器做配置,通常是通过 SSH 连接服务器通过命令行进行配置,为了简化这个敲命令的流程,所以安装宝塔面板,宝塔面板相当于服务器的图形化管理后台,将很多 Linux 命令操作变成网页按钮操作。

在阿里云的云服务器的实例处,可以在扩展程序的位置安装宝塔面板,安装好之后就可以通过登录信息访问宝塔面板。

安装博客运行环境

只是搭建 Hexo 不一定必须安装 Nginx ,但是如果你要把 Hexo 博客放到自己的服务器上,让别人通过域名来访问,通常会用 Nginx 来提供网页访问服务。因为 Hexo 做的事情只是:将 markdown 文章生成为 HTML/CSS/JS 静态文件。

在宝塔面板的软件商店搜索 nginx ,安装推荐的第一个版本即可。

然后安装 Node.js、npm、Git,在安装 Nginx 的时候可能 Git 也会自动安装,如果不确定是否安装了可以在宝塔页面的左侧的终端运行 git --version查看。


Hexo运行需要使用 Node.js ,所以安装 Node.js ,首先运行 node -v查看服务器中是否已经安装了 Node.js,如果没有安装,可以去宝塔的软件商店先安装最新版的 Node.js 版本管理器,然后在版本管理器里面,安装 Node 即可,最好安装 LTS 版本的。

在版本管理器中安装 Node 后,管理器也会自动安装与该 node 对应版本的 npm,再通过对应下面的命令确认是否安装成功。

1
2
3
node -v
npm -v
npx -v

然后安装 Hexo,运行 npm install -g hexo-cli

搭建博客

进入 www目录 因为宝塔默认把网站相关文件放在 /www下面,所以把博客源码和网站目录都放这里。


创建 Hexo 源码目录:在 www目录 下执行以下代码

1
2
3
mkdir -p hexo
cd /www/hexo
hexo init blog-source

blog-source 是 Hexo 的“源码目录”,里面放文章、主题配置、插件配置,不直接作为公网网站目录。


安装 Hexo 项目依赖:

1
2
cd /www/hexo/blog-source
npm install

hexo init 是创建项目结构,npm install 会安装 Hexo 项目运行需要的依赖。


先生成一次默认博客:来确定 Hexo 本身是否已经正常工作。

1
2
3
hexo clean
hexo generate
ls /www/hexo/blog-source/public

hexo generate 会把 Markdown 文章生成静态网页,输出到 public 目录。


我这里选择使用的主题是 Butterfly

1
2
cd /www/hexo/blog-source
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly

Butterfly 是 Hexo 的主题,必须放进 Hexo 项目的 themes/butterfly 目录。

安装 Butterfly 渲染插件:

1
npm install hexo-renderer-pug hexo-renderer-stylus --save

启用 Butterfly

可以在宝塔页面或者使用 vscode 进行 SSH 连接,打开 _config.yml 文件。

theme: landscape修改为 theme: butterfly

_config.yml 是 Hexo 主配置文件。这里的 theme 决定 Hexo 用哪个主题生成网页。默认是 landscape,改成 butterfly 后,Hexo 才会使用 Butterfly。


创建 Butterfly 独立配置文件:

1
2
cd /www/hexo/blog-source
cp themes/butterfly/_config.yml _config.butterfly.yml

后续要修改主题的配置,就在 _config.butterfly.yml 文件中修改即可。

再重新生成 Butterfly 博客:

1
2
3
cd /www/hexo/blog-source
hexo clean
hexo generate

因为换了主题,所以要重新生成静态页面。


复制到网站目录:

public 是 Hexo 生成结果,但不建议直接把它作为长期网站根目录。

/www/wwwroot/hexo-blog 才是 Nginx 对外访问的目录,这样就将源代码和公开的网站文件分开了。

1
2
mkdir -p /www/wwwroot/hexo-blog
rsync -av --delete /www/hexo/blog-source/public/ /www/wwwroot/hexo-blog/

然后在宝塔面板中添加网站:

填好你的域名和根目录即可,根目录就填 /www/wwwroot/hexo-blog

在站点中,要把在阿里云中开启了解析的域名都填进去,不然某些域名做了解析但是访问不到博客。


做完上面的步骤之后,通过域名就已经可以访问到初始的博客了,但是由于没有配置 SSL 所以还不能用 https 进行访问。

因为处理网站访问的是 Nginx ,所以服务器类型可以认为是 Nginx 类型,所以在上面申请 SSL 的网站中下载 Nginx 类型的证书格式。

然后在宝塔面板配置网站站点的地方进行 SSL 配置即可。

如果配置好了但是 https:// 不能访问的话,可能是安全组没有允许 https 的 443 端口通过。

其他配置

在使用服务器公网 IP 去访问宝塔页面的时候,会显示没有配置 SSL 证书,因为 SSL 是配置给域名的,所以可以专门设置一个以 bt. 开头的域名用于访问宝塔页面。

在阿里云中解析好域名后,就可以在宝塔页面的设置中设置访问宝塔的域名。

同样在宝塔页面的设置中可以给面板 SSL 配置 SSL。(前提是你在申请 SSL 的时候申请了通配符域名或 bt. 开头的域名)

在设置好访问宝塔页面的域名后,如果想访问宝塔页面,要记得访问的时候要加上宝塔页面的端口。

为了便于迭代网站,创建 github 仓库管理源代码可能会更好。


如果有新的文章的话,放在 soure/ _posts 目录里即可。

如果要修改一些基础信息,则在 _config.yml 中进行修改即可,如果想修改 Butterfly 的主题外观和功能,则在 _config.butterfly.yml 中进行修改。