使用Vultr搭建个人Hexo博客

今年下定决心提高自己的写作能力,好的开始是成功的一半,就先记录下我的搭建个人博客历程吧,搭建一个博客需要以下几个步骤

  1. 申请域名
  2. 申请VPS,安装好Hexo需要的一些软件
  3. 本地搭建配置Hexo

申请域名

可以在各大域名商上去申请域名,我是在 godaddy 上申请,这里需要注意的事,域名后期续费是越来越贵的,
所以最好一次性买个几年, 这样一来省钱,二来也避免续费的烦恼,购买域名后,需要注意,
由于我的 VPS 选择了 Vultr,此域名的域名解析服务器需要改成 Vultr 的,怎么修改呢

  1. 点击我的产品中的 DNS ,如下图
    使用Vultr搭建个人Hexo博客_第1张图片
    image
  1. 填上 Vultr 的域名服务器


    使用Vultr搭建个人Hexo博客_第2张图片
    image

到这里我们的域名申请工作就结束了

VPS

接下来就要申请 vps 了,这里我选择了口碑比较好的 vultr, 注册后点击这里即可配置 server ,前面两步我选择了东京的「CentOS 7 x64」,第三步 Server Size 我选择了第三个普通版

使用Vultr搭建个人Hexo博客_第3张图片
image

这里提前预警下,由于之后我们要安装 lnmp 所以配置最好至少选第三个开始的配置,然我一开始选了第二个, lnmp 装的过程中一直有问题,换成第三个就好了,如果你的 Mysql 至少要安装 5.7 以上,要出点血选择第四个配置了(因为 5.7 比较吃内存),第四,五步可以不选,第六步最好附上你的 SSH Keys 这样使用 SSH 登录你的 VPS 的时候就能免登录了,怎么生成 SSH Keys 呢,可以点 这里查看

使用Vultr搭建个人Hexo博客_第4张图片
image

最后一步为你的 Server 起个名字就行啦(建议用域名,如下)

image

Server 的配置我们选好了之后,我们还需要绑定我们的域名与 ip, 这样才能让域名解析器解析正确

点击这里即可拿到 Server 的 ip

使用Vultr搭建个人Hexo博客_第5张图片
image

拿到域名之后点击 DNS 中的 「Add Domain」即可绑定域名和 ip

使用Vultr搭建个人Hexo博客_第6张图片
image

在这里我们的 Server 申请工作就结束了,但申请了之后我们还要再给这个 Server 安装支撑 Hexo 运行的软件,需要安装哪些软件呢,
我们首先需要知道 Hexo 的运行原理,如下图:


使用Vultr搭建个人Hexo博客_第7张图片
image

整体原理如下

  1. 本地计算机将 Sources 下的 Markdown 文件转为 Html 之后,执行「Hexo Deploy」命令后,会把本地生成的静态文件 push 到 Server 上的 git 仓库
  2. 「git-hook」会将自动将以上步骤生成的静态文件 copy 到网站的根目录,然后经过 Nginx 代理服务即可把网站展现给用户,我们的个人博客也就建成了

知道了原理就不难得知
我们要在本地和服务器分别搭建我们的环境

本地环境搭建

  1. 安装 Git 和 Node.js

  2. 安装 Hexo:使用 cmd 命令行,输入下列命令

    $ npm install -g hexo-cli
    
  3. 指定一个文件夹存放你的Blog文件(也就是根目录)

    $ hexo init   # 替换成你的文件夹地址,在这个地址里生成Hexo初始化文件
    $ cd   # 进入这个文件夹
    $ npm install  # 在文件夹内自动安装Hexo所依赖的各种模块
    

服务器环境搭建

由以上分析可知我们至少要装 git, nginx, 主要步骤如下

  1. 使用以下命令即可安装 git

    yum install git 
    
  2. 至于 nginx 的安装我推荐大家用 lnmp, Linux、Nginx、MySql、Php 可以说是建站的标配了, lnmp 只要执行一行命令就能把这些软件都安装好,能省下我们不少精力,不过这四个软件的安装可能需要半小时之久,大家要做好心理准备_, 安装成功后我们访问域名,即会出现以下提示,说明我们安装成功了

    image
  1. 安装好之后我们首先需要建立一个 git 仓库来存放我们本地 blog 生成的静态目录,为了安全我们通常不以 root 身份来操作,所以这里我们选择
    新建一个用户,专门运行 git 服务

    adduser git
    

    以下步骤赋予 git 用户 sudo 权限

    chmod 740 /etc/sudoers
    vim /etc/sudoers
    

    找到以下内容:

    ## Allow root to run any commands anywhere
    root    ALL=(ALL)     ALL
    

    在下面添加一行:

    git ALL=(ALL) ALL
    

    保存退出后改回权限:

    chmod 400 /etc/sudoers
    

画外音:可以想一下为啥要给用户 git 权限,如果不给的话可能会出现什么问题

  1. 切换用户,配置SSH

    由于本机 Hexo 部署好文件后需要 push 到远程,为了避免每次 push 时都要输入密码,我们需要进行免密操作,步骤如下

    使用 su git 切换到 git 用户,再执行下列操作

    # 切换到git用户目录
    cd /home/git
    # 创建.ssh文件夹
    mkdir ~/.ssh
    # 创建authorized_keys文件并编辑
    vim ~/.ssh/authorized_keys
    # 如果你还没有生成公钥,那么首先在本地电脑中执行 cat ~/.ssh/id_rsa.pub | pbcopy生成公钥
    # 再将公钥复制粘贴到authorized_keys
    # 保存关闭authorized_keys后,修改相应权限
    chmod 600 ~/.ssh/authorzied_keys
    chmod 700 ~/.ssh
    

    然后在本机执行以下命令查看配置是否成功

    ssh  git@服务器ip地址
    
  1. 接下来我们新建一个 git 仓库来存放本地 Hexo 生成的静态文件

    # 回到git目录
    cd /home/git
    # 使用git用户创建git裸仓库,以blog.git为例
    git init --bare blog.git
    

    画外音: 为啥不用 git init 而用 git init bare, 请这里查看两者的区别

    建好仓库之后我们设置一下 「git hook」

    vim ~/blog.git/hooks/post-receive
    

    输入以下内容

    #!/bin/bash
    GIT_REPO=/home/git/blog.git
    TMP_GIT_CLONE=/tmp/blog
    #这里我用 /var/www/blog 目录作为网站的根目录
    PUBLIC_WWW=/var/www/blog
    rm -rf ${TMP_GIT_CLONE}
    git clone $GIT_REPO $TMP_GIT_CLONE
    rm -rf ${PUBLIC_WWW}/*
    cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
    

    保存退出后,执行:chmod +x post-receive 赋予这个文件可执行权限。

检查一下 blog.git、.ssh、blog目录的用户权限组是否都为git:git
    
```
# /var/www/是怎么回事?注意我在 git hook 里提到用 /var/www/blog 作为网站的根目录
ll -a /var/www/
ll -a /home/git/
ll -a ~/.ssh
```

![image](http://upload-images.jianshu.io/upload_images/167958-955dbf4f8aa1869d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

如果哪个不是,执行以下命令再看一下

```
sudo chown git:git -R /var/www/blog
sudo chown git:git -R /home/git/blog.git
```
  1. 配置 Nginx

    由于我们的 blog 用到了 nginx 静态文件处理服务,需要修改 nginx 的配置文件(nginx.conf),进入 nginx 的配置目录

    /usr/local/nginx/conf/
    

    先备份一下 nginx.conf

    cp nginx.conf nginx.conf.bak
    

    然后打开 nginx.conf 文件,修改 root 为我们在上一步新建的 blog 的目录

    server
    {
        listen 80 default_server;
        #listen [::]:80 default_server ipv6only=on;
        server_name _;
        index index.html index.htm index.php;
        #修改这里为我们的 blog 目录
        root /var/www/blog;
    
        ...
    }
    

    保存修改后使用 nginx -t 查看配置是否有错误,若无误,则执行 lnmp restart 即可让配置生效

  2. 将本机 Hexo 工程的 git 地址指向 服务器 git 地址

    # 在本地环境搭建时我的博客放在~/hexos文件夹里
    cd ~/hexos
    vim _config.yml
    

    找到 deploy 选项,修改 repo 为你的远程服务器地址

    deploy:
    type: git
    repo: git@服务器ip:/home/git/blog.git
    branch: master
    

    完成了以上本地和服务器配置之后,使用 Hexo 创建写好了文章之后,执行 「hexo deploy」命令,稍等片刻后,访问我们的域名即可显示我们的博客文章,大功告成!

参考:VPS搭建个人Hexo博客

你可能感兴趣的:(使用Vultr搭建个人Hexo博客)