前言

最近趁着活动薅羊毛又把服务器续上了,既然白嫖到了不用白不用,就将个人博客挪个窝;顺便记录一下。


购买服务器

首先我们需要有一台云服务器,我这里是买的腾讯云


通过git生成ssh秘钥

1
2
3
4
5
6
7
// 假如没有设置git的全局信息需要先设置 设置过了可以忽略
git config --global user.name "yourname"
git config --global user.email youremail@example.com
// 生成SSH密钥
ssh-keygen -t rsa -C "youremail@example.com"
// 禁用自动转换,这个不设置后面上传时会出现警告
git config --global core.autocrlf false

配置服务器git

  1. 登录服务器
  2. 安装git
    通过git –version命令查看是否存在git命令,我这里已经安装好了;如果显示的是not found, 需要去安装
    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y yum install -y git

  1. 创建用户并配置仓库
    1
    2
    3
    4
    5
    6
    7
    8
    9
    useradd git  // 创建用户
    passwd git // 设置密码
    su git // 切换用户
    cd /home/git/ // 进入git用户所在home目录
    mkdir -p projects/blog // 创建项目存放的目录(可以自行创建命名)
    mkdir repos && cd repos // 创建文件夹
    git init --bare blog.git // 创建一个裸露的仓库
    cd blog.git/hooks // 创建 hook 钩子函数
    vi post-receive // 编辑hook钩子
    在编辑区输入以下内容:
    1
    2
    3
    4
    5
    #!/bin/sh 
    git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f

    // /home/git/projects/blog 项目存放地址
    // /home/git/repos/blog.git git远程服务器仓库

按住ESC,然后输出:wq保存退出!

1
2
3
4
5
chmod +x post-receive // 为刚才的文件添加可执行的权限
// 退出切换到 root 登录
exit
su root
chown -R git:git /home/git/repos/blog.git // 添加权限
  1. 测试本地能否将其clone

在电脑上随便找个位置新建一个文件夹,并且将bash或者其他命令行工具切换到这里。开始执行以下命令(注意替换成你的服务器ip),测试能否将仓库clone下来。
git clone git@server_ip:/home/git/repos/blog.git

  1. 建立SSH信任关系(免密登录)
    1
    2
    3
    4
    5
    6
    7
    su git  // 切换到git用户
    cd ~
    mkdir .ssh // 创建.ssh目录
    chmod 700 .ssh/ // 赋予权限
    cd .ssh // 进入.ssh目录
    vi authorized_keys // 编辑一个名为authorized_keys的文件,并写入公钥(id_rsa.pub)内容
    chmod 600 authorized_keys //添加完成后赋予权限
    在本地测试能否连接成功
    ssh git@server_ip此时登录就只需要输入一次密码就好了。

配置NGINX服务器

  1. 安装
    1
    2
    3
    4
    // 安装依赖 
    sudo yum install -y yum-utils
    // 安装nginx服务
    sudo yum install -y nginx
  2. 配置
    1
    2
    3
    4
    //切换到nginx的配置文件目录
    cd /etc/nginx
    // 编辑文件
    vi nginx.conf // 将 user 改成 root

修改root解析路径(/home/git/projects/blog/)

运行nginx此时在浏览器直接访问你的服务器ip地址即可看到一个404页面。


配置Hexo deploy

  1. 配置博客根目录下的_config.yml文件
    1
    2
    3
    4
    5
    6
    7
    8
    deploy:
    - type: git
    repo: git@github.com:lp-Imagine/lp-Imagine.github.io.git
    branch: master
    - type: git
    repo: git@42.192.205.229:/home/git/repos/blog.git
    branch: master
    - type: baidu_url_submitter // 百度主动推送
  2. 本地三连hexo clean && hexo g && hexo d