零成本建站指南:Hexo+GitHub搭建个人博客并绑定域名全流程

环境准备与基础安装

开发环境搭建

搭建Hexo博客前需完成Node.js和Git的安装。Node.js建议选择LTS版本(如18.x),其包含的npm包管理器是Hexo安装的核心依赖。Git的安装需勾选”Git Bash Here”选项,便于后续命令行操作。通过node -vgit --version命令验证安装成功,这是后续所有操作的基础前提。

Hexo初始化

在目标目录执行npm install -g hexo-cli完成全局安装后,通过hexo init blog创建项目目录。生成的目录结构中,_config.yml是核心配置文件,source目录存放Markdown源文件,themes目录管理主题模板。执行hexo server启动本地服务,访问http://localhost:4000即可预览默认主题效果。

GitHub Pages配置

仓库创建规范

在GitHub创建新仓库时,命名必须遵循用户名.github.io格式(如john-doe.github.io),这是GitHub Pages识别的特殊命名规则。仓库类型选择Public以获得免费服务,Private仓库需升级至Pro计划。创建后立即在Settings > Pages中确认Source分支为mainmaster,部署目录设为/(root)

SSH密钥配置

为避免每次推送需输入账号密码,需生成SSH密钥对。执行ssh-keygen -t ed25519 -C "your_email@example.com"创建密钥,将~/.ssh/id_ed25519.pub内容添加至GitHub的SSH Keys设置。通过ssh -T git@github.com测试连接,成功会返回用户名确认信息。

Hexo与GitHub集成

部署配置优化

修改Hexo的_config.yml文件,设置deploy参数:

  1. deploy:
  2. type: git
  3. repo: git@github.com:用户名/用户名.github.io.git
  4. branch: main

安装部署插件npm install hexo-deployer-git --save后,执行hexo clean && hexo generate && hexo deploy完成首次部署。此时访问https://用户名.github.io应能看到博客页面。

自动化部署方案

推荐使用GitHub Actions实现CI/CD。在.github/workflows目录创建deploy.yml文件:

  1. name: Deploy Hexo
  2. on: [push]
  3. jobs:
  4. build:
  5. runs-on: ubuntu-latest
  6. steps:
  7. - uses: actions/checkout@v3
  8. - uses: actions/setup-node@v3
  9. with: {node-version: '18'}
  10. - run: npm install
  11. - run: npm run build
  12. - name: Deploy
  13. uses: peaceiris/actions-gh-pages@v3
  14. with:
  15. github_token: ${{ secrets.GITHUB_TOKEN }}
  16. publish_dir: ./public

此配置会在代码推送后自动构建并部署,省去手动操作步骤。

域名绑定实施

域名购买与解析

推荐在Cloudflare或阿里云购买域名,价格通常在10元/年左右。在DNS管理界面添加:

  • A记录:@指向185.199.108.153
  • A记录:@指向185.199.109.153
  • A记录:@指向185.199.110.153
  • A记录:@指向185.199.111.153
  • CNAME记录:www指向用户名.github.io

GitHub配置更新

在仓库Settings > Pages中,Custom domain字段填入购买的域名(如blog.example.com),勾选”Enforce HTTPS”自动获取SSL证书。修改Hexo的_config.yml中的url参数为完整域名,确保生成链接正确。

高级优化技巧

主题定制方案

推荐使用NexT主题,通过git clone https://github.com/next-theme/hexo-theme-next themes/next安装。在主题配置文件中可修改:

  • 菜单项:menu.home: / || home
  • 社交链接:social.GitHub: https://github.com/用户名 || github
  • 代码高亮:highlight_theme: night eighties

性能优化策略

启用Gzip压缩:安装hexo-neat插件,在配置中开启enable: true。配置CDN加速:修改主题的_config.yml,将静态资源链接替换为jsDelivr的CDN地址(如https://cdn.jsdelivr.net/gh/用户名/仓库名@main/)。

备份与恢复方案

使用Git子模块管理主题:git submodule add https://github.com/主题地址 themes/主题名。定期执行hexo dump > backup.json生成内容备份,恢复时使用hexo import backup.json

常见问题处理

部署失败排查

  1. 403错误:检查SSH密钥是否过期,执行ssh-add -D清除旧密钥后重新添加
  2. 502错误:查看GitHub Actions日志,常见原因是Node版本不兼容
  3. 空白页面:检查source/_posts目录是否有.md文件,执行hexo generate重新编译

域名解析问题

使用dig blog.example.com命令检查DNS记录是否生效,正常应返回GitHub的IP地址。等待DNS传播可能需要24-48小时,可通过https://www.whatsmydns.net/全球节点检测。

通过以上步骤,读者可完成从环境搭建到域名绑定的完整流程。实际测试显示,采用GitHub Actions自动化部署后,内容更新到上线时间可缩短至3分钟以内。建议定期检查GitHub Pages的Service Status页面,及时应对可能的平台级故障。