零成本建站指南:Hexo+GitHub搭建个人博客并绑定域名全流程
环境准备与基础安装
开发环境搭建
搭建Hexo博客前需完成Node.js和Git的安装。Node.js建议选择LTS版本(如18.x),其包含的npm包管理器是Hexo安装的核心依赖。Git的安装需勾选”Git Bash Here”选项,便于后续命令行操作。通过node -v和git --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分支为main或master,部署目录设为/(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参数:
deploy:type: gitrepo: git@github.com:用户名/用户名.github.io.gitbranch: main
安装部署插件npm install hexo-deployer-git --save后,执行hexo clean && hexo generate && hexo deploy完成首次部署。此时访问https://用户名.github.io应能看到博客页面。
自动化部署方案
推荐使用GitHub Actions实现CI/CD。在.github/workflows目录创建deploy.yml文件:
name: Deploy Hexoon: [push]jobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v3- uses: actions/setup-node@v3with: {node-version: '18'}- run: npm install- run: npm run build- name: Deployuses: peaceiris/actions-gh-pages@v3with:github_token: ${{ secrets.GITHUB_TOKEN }}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。
常见问题处理
部署失败排查
- 403错误:检查SSH密钥是否过期,执行
ssh-add -D清除旧密钥后重新添加 - 502错误:查看GitHub Actions日志,常见原因是Node版本不兼容
- 空白页面:检查
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页面,及时应对可能的平台级故障。