hexo部署博客到github及云服务器

工具

本地端(windows工作平台)

  • git
  • node.js

    云端(Centos阿里云)

  • gogs
  • nginx

安装hexo

1
npm install hexo-cli -g

hexo初始化及配置

初始化项目文件夹blog

1
2
3
hexo init blog
cd blog
npm install

安装相应插件

1
2
3
4
npm install hexo-deployer-git --save
npm install hexo-generator-feed --save
npm install hexo-generator-search --save
npm install hexo-generator-sitemap --save

新建标签云、关于我、404页面

1
2
3
hexo new page tags
hexo new page about
hexo new page 404

下载相应主题保存到/themes/文件夹中

修改站点和主题配置文件_config.yml

本地开启服务,查看博客(默认端口4000)

1
hexo s

本地配置SSH keys

检查是否已经存在SSH keys

在Git Bash输入

1
ls -al ~/.ssh

创建SSH keys(已存在略过)

1
ssh-keygen -t rsa -C "your_email@example.com"

复制公钥内容

1
clip < ~/.ssh/id_rsa.pub

github上部署

创建项目

登录github,创建 用户名.github.io 的Public项目。

配置SSH密钥

把本地的公钥内容粘贴到Key框内

测试SSH密钥登录

1
ssh -T git@github.com

如果通过,返回

1
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.

云服务器上部署

创建项目

登录gogs,创建项目。

设置项目的Git钩子

设置Git钩子post-receive为(/home/wwwroot/blog为博客根目录)

1
2
#!/bin/bash
git --work-tree=/home/wwwroot/blog checkout -f

设置git用户对博客根目录权限

1
chown -R git:git /home/wwwroot/blog

配置SSH密钥

把本地的公钥内容粘贴到密钥内容框内

测试SSH密钥登录

1
ssh -T git@git.xxxx.com

如果通过,返回

1
Hi there, You've successfully authenticated, but Gogs does not provide shell access.

本地部署

修改站点配置文件_config.yml

1
2
3
4
5
deploy:
type: git
repo:
github: git@github.com:xxx/xxx.github.io.git
gogs: git@git.xxxx.com:xxx/blog.git

执行生成及部署命令

1
hexo d -g
文章目录
  1. 1. 工具
    1. 1.1. 本地端(windows工作平台)
    2. 1.2. 云端(Centos阿里云)
  2. 2. 安装hexo
  3. 3. hexo初始化及配置
    1. 3.1. 初始化项目文件夹blog
    2. 3.2. 安装相应插件
    3. 3.3. 新建标签云、关于我、404页面
    4. 3.4. 下载相应主题保存到/themes/文件夹中
    5. 3.5. 修改站点和主题配置文件_config.yml
    6. 3.6. 本地开启服务,查看博客(默认端口4000)
  4. 4. 本地配置SSH keys
    1. 4.1. 检查是否已经存在SSH keys
    2. 4.2. 创建SSH keys(已存在略过)
    3. 4.3. 复制公钥内容
  5. 5. github上部署
    1. 5.1. 创建项目
    2. 5.2. 配置SSH密钥
    3. 5.3. 测试SSH密钥登录
  6. 6. 云服务器上部署
    1. 6.1. 创建项目
    2. 6.2. 设置项目的Git钩子
    3. 6.3. 设置git用户对博客根目录权限
    4. 6.4. 配置SSH密钥
    5. 6.5. 测试SSH密钥登录
  7. 7. 本地部署
    1. 7.1. 修改站点配置文件_config.yml
    2. 7.2. 执行生成及部署命令