为了让自己更加方便发布博客,我的需求就是希望直接用hexo g就能直接把博客从本地发布到我博客服务器,网上很多教程都是教你怎么发布到github上面的,实际原理类似,无非就是用自己服务器构建一个git server,然后远程发布就行了。

服务器端操作

登录你博客所在的服务器,按步骤执行命令。

  • 安装git
    1
    2
    3
    git --version # 如无,则安装
    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
    yum install -y git
  • 创建用户和初始化仓库
    这里其实可以用其他用户,比如www,但是我为了区分服务器功能还是用了git账户
    1
    2
    3
    4
    5
    6
    7
    8
    9
    useradd git
    passwd git # 设置密码

    mkdir -p /www/git # 创建git server提交目录,可以是任何目录
    chown -R git:git /www/git # 授权为git目录
    su git # 切换为git账户
    cd /www/git/
    git init --bare blog.git # 创建一个仓库
    vim blog.git/hooks/post-receive # 配置git server上传目录等信息
    post-receive文件内容如下:
    1
    2
    #!/bin/sh
    git --work-tree=/www/wwwroot/blog --git-dir=/www/git/blog.git checkout -f
    其中--work-tree配置你博客webroot目录即可,--git-dir是你git server目录
  • 进行相关文件授权
    1
    2
    3
    chmod +x blog.git/hooks/post-receive # 这步很重要,否则你在webroot目录看不到提交的文件
    exit # 切回root账户
    chmod -R 777 /www/wwwroot/blog # 授权git用户可读写该目录,如果你是用www账户,可以不用执行
  • 修改vi _config.yml
    修改vi _config.yml文件如下图所示,其中server_ip就是你blog所在的服务器。