Hexo+Git 服务器搭建 blog

  1. 搭建思路
  2. 搭建过程
    1. 环境准备
      1. 在服务器上安装 git 并创建 git 远程仓库 如 blog.git
      2. 在 _config.yml 中配置 git 服务器
      3. 配置 nginx
      4. 配置 git 服务器 hooks
      5. 测试效果

博主最近在服务器上搭建 Hexo 发布平台,感觉整个搭建过程和搭建思想蛮有意思,在此记录一下,供猿友参考
Hexo 是一个快速,简单,功能强大,主题社区特别庞大的开源 blog 框架 -》官网
本次搭建是通过在服务器上搭建 Git 服务器来实现一键发布 blog

搭建思路

图解

  1. 客户端就是自己的电脑,可以把 hexo 的静态资源目录当成一个 git 仓库.
  2. 首先配置好远程 git 仓库,通过 hexo d 将静态网站资源 push 到远程 git 仓库
  3. git 仓库接收到 push 处理完成后,自动触发 post-receive 这个钩子.
  4. 执行钩子内容,进入到 /var/www/blog 目录 (也是一个 git 仓库), 拉取刚才 hexo 推送到 git 服务端的静态网站资源.
  5. 配置 nginx, 将 80 端口映射到 /var/www/blog 目录.
  6. 就可以直接通过 ip 访问到静态 blog 了

搭建过程

环境准备

在服务器上安装 git 并创建 git 远程仓库 如 blog.git

搭建过程移步 搭建Git服务器

_config.yml 中配置 git 服务器

deploy:
    type: git
    repo: git@server:/home/git/blog.git
    branch: master

如果 ssh 端口不是默认的 22 的话,如下配置,8080 改为自己服务器上 ssh 端口

deploy:
    type: git
    repo: ssh://git@server:8080/home/git/blog.git
    branch: master

配置 nginx

现在已经可以使用 hexo d 将 hexo 中的生成的静态资源发送到远程服务器中,接下来我们要配置 nginx 来配置静态 web。
安装过程可以自行 Google,在此只说明 nginx 如何配置静态 web
首先创建一个目录作为存放 web 资源(hexo 生成的)的目录,如: /var/www/blog

cd /var/www
# 创建 blog 目录,并克隆 blog.git 仓库的内容
git clone /home/git/blog.git blog

找到 nginx.conf 添加以下信息

server {
    listen 80;
    charset utf-8;
    root   /var/www/blog;
    index  index.htm index.html index.jsp;
}
# 重启并加载配置文件
$ nginx -s reload

配置 git 服务器 hooks

这个钩子的作用是,当 git 服务器接受客户端 push 完成更新,执行此文件内容

# 创建并编辑 post-receive
$ vim blog.git/hooks/post-receive

内容如下

#!/bin/sh
unset GIT_DIR #还原环境变量,否则会拉不到代码
cd /var/www/blog
git pull origin master #拉取最新代码

测试效果

在本地的 hexo 下执行 hexo d
查看 /var/www/blog 文件夹内的内容也发生变化


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

×

喜欢就点赞,疼爱就打赏