阿里云服务器搭建Hexo博客

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

部署环境

客户端:wim10

服务器:Centos 7

使用软件:nginx,Git,Hexo, Nodejs

总体思路

没啥好说的就分为两大步,客户端和服务端的操作
客户端:

  1. 安装 Nodejs 和 npm
  2. 通过 npm 安装 Hexo 博客框架
  3. 安装Git 和 配置

服务端:

  1. 搭建Git服务器和Hexo自动部署
  2. 安装Nginx

客户端部署

安装 Nodejs

Nodejs下载 : https://nodejs.org/dist/v10.15.0/node-v10.15.0-x64.msi
版本:v10.15.0
下载安装,安装完成打开cmd命令行,测试是否安装成功

1
2
3
4
5
## 查询安装的node版本
$ node -v

## 查询安装的npm版本
$ npm -v

ls

安装Hexo框架和插件

在命令行窗口输入以下命令

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

## 安装hexo本地服务器
npm install hero-server

## 安装Hexo的Git部署工具
npm install hexo-deployer-git --save

ls

1
2
3
4
5
## 查看hexo框架版本
hexo -v

## 指定博客网站初始化目录,目录自定义
hexo init D:\repo\www\hexoBlog

跳转到博客根目录下面,shift+右键,点击在此处打开Powershell窗口,输入以下命令

1
2
3
4
5
6
7
8
## 新建文章
hexo new "my hexoBlog"

## 生成静态文件并部署
hexo g -d

## 启动网站,端口为:8089,默认4000
hexo server -p 8089

ls

ls

然后用浏览器打开:http://localhost:8089

ls

至此,本地Hexo搭建完成

安装Git 和 配置

注意Git安装需要注册GitHub账户

Git官网下载 : https://git-scm.com/download/win

注册Git账户:https://github.com/

安装完成后,在命令行窗口输入以下命令确认是否安装成功

1
2
## 查看git版本
git --version

ls

配置下git用户信息

1
2
3
4
5
6
7
8
## 设置Git用户信息,用于commit时的签名
git config --global user.name "username"

## GitHub的邮箱
git config --global user.email "email"

## 接下来生成ssh-key,生成过程中一直确认就行,email为你的邮箱
ssh-keygen -t rsa -C "email"

找到红线目录下生成的ssh公钥文件,打开是一串公钥字符串,配置git自动化部署的时候有用
ls

ls

至此,客户端先告一段落,随后切换到服务器部署

服务端部署

Nodejs安装

Nodejs下载:https://github.com/nodesource/distributions

下载连接在页面的下面,我们采用Nodejs 10版本,根据系统版本选择,使用curl指令下载

注意下面的操作可以切换到root账户,避免权限不足导致安装失败

1
2
3
4
5
6
7
8
## 使用curl安装nodejs
sudo curl -sL https://rpm.nodesource.com/setup_10.x | bash -

sudo yum install -y nodejs

## 安装成功后查看命令
node -v
npm -v

ls

Git安装和部署

1
2
3
4
5
## 使用软件源的git安装
sudo yum -y install git

## 查看安装版本
git --version

ls

接下来的命令有点多,注意看,而且以下操作应在root权限下
首先新增git用户

1
2
3
4
5
## 创建名为git的用户
adduser git

## 设置git用户密码
passwd git

然后把git添加到用户组

1
2
3
4
5
6
7
8
9
10
11
12
## 放开用户组的编辑权限
chmod 740 /etc/sudoers

## 打开用户组配置
vim /etc/sudoers

## 找到以下内容,并在下面新增一行
root ALL=(ALL) ALL
git ALL=(ALL) ALL

## 保存并退出,并将用户组权限还原
chmod 400 /etc/sudoers

ls

接下来配置git服务器

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
## 切换到git用户
su git

## 创建Git shh连接目录
mkdir ~/.ssh

## 复制客户端生成的 ssh公钥,全部粘贴到里面
vim ~/.ssh/authorized_keys

## 保存并退出,然后设置只属于Git用户的读写权限
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh

## 创建git博客仓库
mkdir -p /usr/git/hexo/

## 初始化网站仓库
cd /usr/git/hexo/
git init --bare hexoBlog.git


## 接着创建hexo的博客网站目录
mkdir -p /usr/www/hexoBlog

## 最后设置当前仓库的自动化部署配置
vim /usr/git/hexo/hexoBlog.git/hooks/post-receive

## 输入以下内容
#!/bin/bash
WEBROOT=/usr/www/hexoBlog
git --work-tree=$WEBROOT checkout -f master
chmod -R 777 $WEBROOT

## 保存并退出,赋予文件可执行权限
sudo chmod +x /usr/git/hexo/hexoBlog.git/hooks/post-receive

## 注意检查下以上文件用户组是不是属于git,不然自动部署会出现权限问题
ls -lh /usr/git/hexo/

## 如果不是git:git,那么可以使用以下命令设置用户组
sudo chown -R git:git /usr/git/hexo/

Git安装和服务器搭建完成,接下来安装nginx

nginx安装

注意阿里云服务器的端口开放,需要在阿里云控制台设置安全组出入规则

1
2
3
4
5
6
7
8
## 切换root登陆
su root

## 通过yum源安装Nginx
yum -y install nginx

## 按下图配置Nginx 默认host 80端口配置
vim /etc/nginx/conf.d/default.conf

server_name:可以设置成你自己的域名或服务器ip

root:指定到我们hexo博客的静态文件根目录,会自动打开 index.html 文件
ls

保存并退出
至此,服务器的配置部署也已经完成了,最后就是实现本地的自动化部署了

自动化部署

打开客户端网站根目录的主配置文件
ls

在文件最下方,找到下面配置
ls

根据如下配置自行设置

1
2
3
4
5
6
7
## repo为ssh仓库地址, git@ + 服务器ip + : +仓库路径
## branch为 master 主干
## 服务器ip可以通过命令查看:ifconfig
deploy:
type: git
repo: git@192.168.0.1:/usr/git/hexo/hexoBlog.git
branch: master

保存后,在博客根目录,shift+右键,点击在此处打开Powershell窗口,输入以下命令

1
2
3
4
5
## 清除历史生成
hexo clean

## 生成静态文件并部署
hexo generate --deploy

然后通过你的服务器域名或者ip访问吧

完毕,谢谢观看

关联文档


Hexo官方文档:https://hexo.io/zh-cn/docs/

Git文档:http://www.runoob.com/git/git-tutorial.html

Linux命令大全:http://www.runoob.com/linux/linux-command-manual.html