Centos7搭建git与hexo

一直在考虑更换个人博客,Wordpress实在是太臃肿了,如此Hexo就成了我的选择对象,但是github访问速度堪忧,时不时会被墙。基于以上问题,所以我决定在腾讯云的服务器上搭建hexo。

一、在客户端(自己电脑上)完成如下工作:

  1. 安装配置git
  2. 安装nodejs
  3. 安装hexo框架

1.在本地安装git服务并配置

  • 1.下载对应的 git软件 安装,一路下一步到安装结束。
  • 2.下载对应的 Nodejs 安装 也是一路下一步到安装结束。

    2.配置git服务

    • 找一个你喜欢的目录下右键-Git Bash Here 。
      1
      2
      3
      4
      //将此处的"yourname"替换成自己的用户名
      git config --global user.name "yourname"
      //将此处的"youremail"替换成自己的邮箱
      git config --global user.email "youremail"
  • 输入
    1
    cd ~/.ssh

检查是否存在ssh文件夹
如下图所示则存在ssh无需新建:
检查是否存在ssh
否则输入以下代码新建一个ssh key

1
2
// 将此处的"youremail"替换成自己的邮箱
ssh-keygen -t rsa -C "youremail"

  • 生成key的过程参考下图:
    生成key
  • 在下图所示的目录下存在生成的密钥和公钥
    key所在文件夹

至此已经配置好了git,接下来分别输入以下指令

1
2
node -v 
npm -v

如下图显示则已经安装好了Nodejs
Nodejs

  • 安装hexo框架
    首先,继续在刚刚打开的Git Bash里面输入以下代码,通过npm进行全局安装hexo框架。
    1
    npm install -g hexo-cli

安装完hexo框架,就可以开始初始化hexo了,选择一个目录存放你的博客文件,然后把Git Bash切换到那个目录。
接着,输入如下指令进行初始化hexo。

1
hexo init blog

然后进行包的安装。

1
2
cd blog
npm install
  • 完成上述步骤之后你已经安装好了hexo 输入如下代码运行hexo
    1
    hexo s

如下图所示为成功运行:
运行hexo
在浏览器中输入 http://localhost:4000
打开如下网页说明成功运行了
hexo网页

至此我们已经成功做好了所有客户端需要做的事,接下来是连接上服务器后操作

二、在服务器上配置安装git nodejs并配置

  • 安装Nodejs
    1
    yum install nodejs

可输入node -v以及npm -v查看node的版本。
至此,Nodejs的安装就完成了。

  • 输入以下代码,进行Git的安装

    1
    yum install git
  • 创建git用户以及设置密码
    输入以下代码:

    1
    2
    3
    4
    #创建用户,用户名为git
    adduser git
    #设置密码
    passwd git
  • 把git用户添加到sudo用户组中
    输入以下代码

    viALL
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ```git ALL=(ALL) ALL```。输入完毕之后,按esc 输入:```wq!```强制保存退出vi。

    - 换到git用户,添加SSH Key文件并且设置相应的读写与执行权限。
    输入以下代码:
    ```
    //切换用户
    su git
    //创建目录
    mkdir ~/.ssh
    //新建文件
    vim ~/.ssh/authorized_keys

然后打开该目录下的 id_rsa.pub 复制所有内容
key所在的文件夹

粘贴到authorized_keys文件中,保存后退出
如下图:
此处输入图片的描述

  • 接下来设置文件权限,把authorized_keys文件设置成只有属主有读写权限,把ssh目录设置为只有属主有读、写、执行权限。代码如下:

    1
    2
    chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
  • 在你刚才喜欢的目录下右键 打开Git Bash,输入以下代码,测试是否能连接上服务器:

    1
    2
    //ServerIP为你自己服务器的ip
    ssh -v git@ServerIP

过程如下图
测试连接git

  • 重新回到服务器,在网站根目录新建一个blog文件夹,用于客户端上传文件,并且把该文件授权给git用户。代码如下:
    这里的目录根据你的nginx 或者apache配置文件来创建

    1
    2
    3
    //使用sudo指令,需要输入git用户的密码
    sudo mkdir -p /var/www/html/blog
    sudo chown -R git:git /var/www/html/blog
  • 在服务器上初始化一个git裸库
    切换到git用户,然后切换到git用户目录,接着初始化裸库,代码如下:

    1
    2
    3
    su git
    cd ~
    git init --bare blog.git
  • 接着新建一个post-receive文件

    1
    vim ~/blog.git/hooks/post-receive
  • 然后在该文件中输入以下内容:

    1
    2
    #!/bin/sh
    git --work-tree=/var/www/html/blog --git-dir=/home/git/blog.git checkout -f
  • 保存退出之后,再输入以下代码,赋予该文件可执行权限。

    1
    chmod +x ~/blog.git/hooks/post-receive
  • 返回客户端,设置博客根目录下的_config.yml文件。
    修改deploy如下

    1
    2
    3
    4
    5
    deploy:
    type: git
    repo: git@SERVER:/home/git/blog.git #此处的SERVER需改为你自己服务器的ip
    branch: master #这里填写分支
    message: #提交的信息
  • 保存后,在博客根目录打开Git Bash,输入以下命令:

    1
    2
    3
    hexo clean  #清除已生成的文件
    hexo g #重新生成
    hexo d #将本地更新 推送到服务器

至此已经完毕!换主题写文章是另外一回事了。