本次演示用到的环境信息
阿里云服务器端:
- 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
安装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配置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创建SSH的公钥和私钥
1
2
3
# 创建SSH的公钥和私钥,此处以Tom@52zhuanke.cn为例
ssh-keygen -t rsa -C "Tom@52zhaunke.cn"输入完上面的命令一路回车即可,这个命令会在~/.ssh目录下生成一个公钥文件id_rsa.pub和一个私钥文件id_rsa
1
2
3
4
5
# 检查是否创建成功
ls ~/.ssh/
# 终端输出的结果中有id_rsa.pub和id_rsa说明成功,否则说明创建失败
# id_rsa.pub id_rsa接下来我们开始来配置GitHub,访问 https://github.com 并登录
登录成功后,找到页面右上角的头像,然后选择”Settings”
在新的页面选择”SSH and GPG keys”
点击”New SSH key”
输入任意”Title”作为标识信息,然后将前面的id_rsa.pub的内容拷贝到key中,最后点击”Add SSH key”
查看id_rsa.pub内容
1
2
3
4
5# 使用cat命令来查看文件内容
cat ~/.ssh/id_ras.pub
# 此处会输出刚才创建的密钥信息,以ssh-rsa开头,设置的邮箱结尾复制对用的信息即可
# ssh-rsa .......... Tom@52zhuanke.cn
安装和配置Node.js
安装Node.js
1
2
3
4
5
6
7
8
9# 使用yum install命令安装Node.js
yum install nodejs
# 检查是否安装成功
node -v
# 终端输出版本号,说明安装成功,否则安装失败
# v12.2.0将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"在PATH=的后面追加”$NODE_PATH/bin:”,见下方图片
输入完毕后,按下键盘的”ESC”,然后输入”:wq”保存文件
1
2# 使用source命令,更新环境变量使其生效
source ~/.bash_profile
配置阿里云安全组
访问阿里云并进行登录 https://account.aliyun.com
找到实例列表,选择要操作的实例,在操作栏,依次点击”更多” ——— “网络和安全组” ———— “安全组配置”,如下图
在安全组列表中选择需要进行操作的安全组然后点击”配置规则”
点击”添加安全组规则”,分别添加入方向的4000端口和80端口,用于后面在本地访问hexo和Nginx
配置4000端口
配置80端口
查看入方向的端口列表,后面配置完毕Nginx后记得将4000端口设置为拒绝或者删除
安装Hexo和Next主题
安装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
# .....初始化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",出现下图内容

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. 刷新网页,此处看到的内容可能和下图的不太一样,不过没有关系后面会详细介绍

### 使用pm2管理hexo并在后台运行
1. 安装pm2
```bash
# 使用npm install命令来安装pm2
npm install -g pm2
# 查看是否安装成功
pm2 -v
# 终端输出pm2版本说明安装成功,否则安装失败
# 3.5.0配置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);
});
// ---------------* 复制内容结束 *---------------
使用pm2启动hexo
1
2
3
4
5
6
7
8# 修改完毕后,按下键盘的"ESC"按键,然后输入:wq保存内容
:wq
# 保存完毕重启nginx
pm2 start hexo.js
# 检查是否启动成功
pm2 list成功启动hexo后如下图所示
安装并配置Nginx
安装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本地浏览器输入”阿里云公网IP”即可访问到下图的界面
配置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;
}
}
}
# ---------------* 复制内容结束 *---------------保存内容并重启Nginx
1
2
3
4
5# 修改完毕后,按下键盘的"ESC"按键,然后输入:wq保存内容
:wq
#保存完毕重启nginx
nginx -s reload本地浏览器输入”阿里云公网IP”即可访问到下图的界面
注意配置完毕后,记得将阿里云的4000端口设置为拒绝或者是删除,如图
安装和配置的时候遇到的错误
安装的hexo时候如果报 symbol SSL_set_cert_cb 错误:
报错信息如下:
1
2
3npm: 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优化篇