【Hexo系列教程】使用Centos7+Nginx+Hexo+GitHub+Next主题搭建个人博客并自动部署-配置篇

本次演示用到的环境信息

阿里云服务器端:

  • Centos 7.2.0
  • Git 1.8.3.1
  • Node.js 12.2.0
  • Hexo 1.1.0
  • pm2 3.5.0
  • Nginx 1.6.3

安装Git并配置GitHub

  1. 安装Git

    1
    2
    3
    4
    5
    6
    7
    8
    9

    # 使用yum install命令安装Git
    yum -y install git

    # 检查是否安装成功
    git --version

    # 终端输出git版本号说明成功安装,否则说明没有安装成功
    # git version 1.8.3.1
  2. 配置Git用户名和邮箱,用于后面对Github的操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    # 配置Git的用户名,此处以Tom为例
    git config --global user.name "Tom"

    # 配置Git的邮箱地址,此处以Tom@52zhuanke.cn为例
    git config --global user.email "Tom@52zhuanke.cn"

    # 检查配置是否生效
    git config --list

    # 终端输出刚刚设置的值说明配置成功,否则说明配置失败
    # user.name=Tom
    # user.email=Tom@zhuanke.cn
  3. 创建SSH的公钥和私钥

    1
    2
    3

    # 创建SSH的公钥和私钥,此处以Tom@52zhuanke.cn为例
    ssh-keygen -t rsa -C "Tom@52zhaunke.cn"
  4. 输入完上面的命令一路回车即可,这个命令会在~/.ssh目录下生成一个公钥文件id_rsa.pub和一个私钥文件id_rsa

    1
    2
    3
    4
    5

    # 检查是否创建成功
    ls ~/.ssh/
    # 终端输出的结果中有id_rsa.pub和id_rsa说明成功,否则说明创建失败
    # id_rsa.pub id_rsa
  5. 接下来我们开始来配置GitHub,访问 https://github.com 并登录

    Github

  6. 登录成功后,找到页面右上角的头像,然后选择”Settings”

    Settings

  7. 在新的页面选择”SSH and GPG keys”

    SSH and GPG keys

  8. 点击”New SSH key”

    New SSH Key

  9. 输入任意”Title”作为标识信息,然后将前面的id_rsa.pub的内容拷贝到key中,最后点击”Add SSH key”

    Add SSH Kye

  10. 查看id_rsa.pub内容

    1
    2
    3
    4
    5
    # 使用cat命令来查看文件内容
    cat ~/.ssh/id_ras.pub

    # 此处会输出刚才创建的密钥信息,以ssh-rsa开头,设置的邮箱结尾复制对用的信息即可
    # ssh-rsa .......... Tom@52zhuanke.cn

安装和配置Node.js

  1. 安装Node.js

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 使用yum install命令安装Node.js

    yum install nodejs

    # 检查是否安装成功

    node -v
    # 终端输出版本号,说明安装成功,否则安装失败
    # v12.2.0
  2. 将Node.js加入环境变量

    1
    2
    3
    4
    5
    6
    7
    8
    # 使用type命令获取node的安装路径
    type node

    # 使用vi编辑Linux的配置文件
    vi ~/.bash_profile

    # 按下键盘的i,然后输入以下内容,双引号之间替换为type输出的路径
    export NODE_PATH="/etc/nvm/versions/node/v12.2.0"
  3. 在PATH=的后面追加”$NODE_PATH/bin:”,见下方图片

    Add PATH

  4. 输入完毕后,按下键盘的”ESC”,然后输入”:wq”保存文件

    1
    2
    # 使用source命令,更新环境变量使其生效
    source ~/.bash_profile

配置阿里云安全组

  1. 访问阿里云并进行登录 https://account.aliyun.com

  2. 找到实例列表,选择要操作的实例,在操作栏,依次点击”更多” ——— “网络和安全组” ———— “安全组配置”,如下图

    安全组配置

  3. 在安全组列表中选择需要进行操作的安全组然后点击”配置规则”

    配置规则

  4. 点击”添加安全组规则”,分别添加入方向的4000端口和80端口,用于后面在本地访问hexo和Nginx

    • 配置4000端口

      添加4000端口

    • 配置80端口

      添加80端口

  5. 查看入方向的端口列表,后面配置完毕Nginx后记得将4000端口设置为拒绝或者删除

    端口列表

安装Hexo和Next主题

  1. 安装Hexo

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 使用npm install命令安装Hexo
    npm install -g hexo-cli

    #检查是否成功安装
    hexo -v

    # 终端输出版本信息说明安装成功,否则安装失败
    # hexo-cli: 1.1.0
    # .....
  2. 初始化hexo

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    # 使用cd命令切换到博客想要在的目录
    cd /var/

    # 使用hexo的命令来初始化博客文件夹,这里的blog为博客程序的目录
    hexo init blog

    # 切换到blog目录下
    cd blog

    # 安装hexo的扩展插件
    npm install

    # 生成静态页面
    hexo g

    # 开启本地服务器
    hexo s

    # 终端输出以下信息,说明初始化成功
    #INFO Start processing
    #INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.
    ```
    4. 本地浏览器上访问"阿里云公网ip:4000",出现下图内容

    ![hexo Home](./005/12.png)

    5. 此时在终端按下Ctrl+C,停止hexo的运行,然后来配置hexo的next主题

    6. 下载并配置hexo-theme-next的主题

    ```bash

    # 使用git clone命令下载主题

    git clone https://github.com/iissnan/hexo-theme-next themes/next

    # 修改hexo的配置文件
    vi _config.yml

    #按下键盘的"/",然后输入"theme:",然后按下回车,如下内容
    /theme:

    # 光标定位到主题位置,然后按下键盘的"i",将":"后的内容修改为"next",最终如下:
    theme: next

    # 修改完毕后,按下键盘的"ESC"按键,然后输入:wq保存内容
    :wq

    # 保存完毕后,重新运行hexo
    hexo s
    ```
    6. 刷新网页,此处看到的内容可能和下图的不太一样,不过没有关系后面会详细介绍

    ![next theme](./005/13.png)

    ### 使用pm2管理hexo并在后台运行

    1. 安装pm2

    ```bash
    # 使用npm install命令来安装pm2
    npm install -g pm2

    # 查看是否安装成功
    pm2 -v

    # 终端输出pm2版本说明安装成功,否则安装失败
    # 3.5.0
  3. 配置hexo后台运行

    1
    2
    3
    4
    5
    6
    7
    # 使用cd命令切换到博客所在路径
    cd /var/blog

    # 使用vi命令添加pm2的配置信息
    vi hexo.js

    # 按下i键,复制以下内容并进行替换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// ---------------*  复制内容开始   *---------------
var spawn = require('child_process').spawn;

free = spawn('hexo', ['server', '-p 4000']);/* 其实就是等于执行hexo server -p 4000*/

free.stdout.on('data', function (data) {

console.log('standard output:\n' + data);

});

free.stderr.on('data', function (data) {

console.log('standard error output:\n' + data);

});

free.on('exit', function (code, signal) {

console.log('child process eixt ,exit:' + code);

});
// ---------------* 复制内容结束 *---------------
  1. 使用pm2启动hexo

    1
    2
    3
    4
    5
    6
    7
    8
    # 修改完毕后,按下键盘的"ESC"按键,然后输入:wq保存内容
    :wq

    # 保存完毕重启nginx
    pm2 start hexo.js

    # 检查是否启动成功
    pm2 list
  2. 成功启动hexo后如下图所示

    hexo

安装并配置Nginx

  1. 安装Nginx

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 使用yum install命令安装nginx
    yum install nginx -y

    # 检查是否安装成功
    nginx -v

    # 终端输出nginx版本信息说明安装成功,否则说明安装失败
    # nginx version: nginx/1.6.3

    # 启动nginx
    nginx
  2. 本地浏览器输入”阿里云公网IP”即可访问到下图的界面

    Nginx

  3. 配置Nginx服务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 使用find命令查看nginx.conf文件存放位置
    find / -name "nginx.conf" -type f | grep "nginx.conf"
    # 终端输出nginx.conf的路径
    # /etc/nginx/nginx.conf

    # 备份nginx.conf文件
    mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf_back

    # 使用vi命令写入如下内容
    vi /etc/nginx/nginx.conf

    # 按下i键,复制以下内容并进行替换
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    # ---------------*  复制内容开始   *---------------
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    events {
    worker_connections 1024;
    }

    http{
    server {
    listen 80 default_server;
    location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Nginx-Proxy true;
    proxy_set_header Connection "";
    proxy_pass http://localhost:4000/;
    proxy_redirect default;
    }
    }
    }

    # ---------------* 复制内容结束 *---------------
  4. 保存内容并重启Nginx

    1
    2
    3
    4
    5
    # 修改完毕后,按下键盘的"ESC"按键,然后输入:wq保存内容
    :wq

    #保存完毕重启nginx
    nginx -s reload
  5. 本地浏览器输入”阿里云公网IP”即可访问到下图的界面

    Nginx

  6. 注意配置完毕后,记得将阿里云的4000端口设置为拒绝或者是删除,如图

    端口列表

安装和配置的时候遇到的错误

安装的hexo时候如果报 symbol SSL_set_cert_cb 错误:

  • 报错信息如下:

    1
    2
    3
    npm: relocation error: npm: symbol SSL_set_cert_cb, 
    version libssl.so.10 not defined in file libssl.so.10 with link
    time reference
  • 产生的原因

    报这个错误是因为OpenSSL的版本太低了

  • 解决方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9

    # 使用yum命令更新openssl的版本
    yum update openssl -y

    # 查看openssl的版本
    openssl -version

    # 输出OpenSSL的版本信息
    # OpenSSL 1.1.0h 27 Mar 2018

Hexo系列教程内容如下:

1. 【Hexo系列教程】使用Centos7+Nginx+Hexo+GitHub+Next主题搭建个人博客并自动部署-前言篇

2. 【Hexo系列教程】使用Centos7+Nginx+Hexo+GitHub+Next主题搭建个人博客并自动部署-配置篇

3. 【Hexo系列教程】使用Centos7+Nginx+Hexo+GitHub+Next主题搭建个人博客并自动部署-Hexo篇

4. 【Hexo系列教程】使用Centos7+Nginx+Hexo+GitHub+Next主题搭建个人博客并自动部署-主题篇

5. 【Hexo系列教程】使用Centos7+Nginx+Hexo+GitHub+Next主题搭建个人博客并自动部署-自动部署篇

6. 【Hexo系列教程】使用Centos7+Nginx+Hexo+GitHub+Next主题搭建个人博客并自动部署-SEO优化篇

-------------本篇文章已结束感谢您的阅读-------------