0%

VPS服务器搭建Hexo+GitHub+Nginx

1 前言

关于个人博客,其实自己很早之前就有了这个打算,然而因为种种的原因(其实就是自己懒),自己一直没有把自己的博客真正的上线。Hexo是一款基于Node.js的快速,简单而强大的博客框架。我们可以使用Markdown(或其他语言)编写文章,可以方便的生成静态网页托管在GitHub上。

下面是我自己搭建博客的基本流程不包含美化主题。


2 前期准备

  • 一台VPS服务器(必须),我选用的是国际知名的vultr,速度不错、稳定且性价比高,按小时计费,能够随时开通和删除服务器,新服务器即是新ip,顺便搭了个酸酸乳效果不错。

  • 一个域名(非必须),可以使用github搭建blog。他们既拥有绝对管理权,又享受github带来的便利—-不管何时何地,只要向主机提交commit,就能发布新文章。更妙的是,这一切还是免费的,github提供无限流量,世界各地都有理想的访问速度。


3 开始搭建

3.1 安装Nodejs

由于CentOS相当的稳定,编译环境都是非常稳定的旧版本,包括CentOS6.x的Python2.6在内已经满足不了新版本Node安装的需要。在使用源码安装方式之前,要更新老版本的编译环境,如果是像我这样仅仅只是使用Node的话,推荐使用二进制安装方法。

二进制安装比编译安装在安装步骤上简单方便了许多,省去了编译环境的更新。详细介绍可点击这里查看各个版本Node在Linux系统下二进制安装官方文档。
CentOS安装Node11.x版本步骤如下:

1
2
[root@vultr ~]# curl -sL https://rpm.nodesource.com/setup_11.x | bash -
[root@vultr ~]# yum install -y nodejs

命令行依次输入 node -vnpm -v 查看当前安装的版本号,检查是否安装成功。

1
2
3
4
[root@vultr ~]# node -v
v11.15.0
[root@vultr ~]# npm -v
6.13.4
3.2 安装Git(已安装可以跳过)
1
2
3
[root@vultr ~]# yum -y install git
[root@vultr ~]# git --version
git version 1.7.1
  • 进行git全局配置

    1
    2
    [root@vultr ~]# git config --global user.name "HBLc"
    [root@vultr ~]# git config --global user.email "[email protected]"
3.3 安装Hexo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@vultr ~]# cd /usr/local/
#创建一个博客目录给Hexo使用,Hexo要求一个空的文件夹,所以git init要等Hexo初始化之后
[root@vultr local]# mkdir hexoDir
#进入这个博客目录中去
[root@vultr local]# cd hexoDir/
#使用npm安装Hexo,安装的是Hexo的命令行工具,安装成功之后可以使用hexo命令
[root@vultr hexoDir]# npm install -g hexo-cli
#进行Hexo初始化
[root@vultr hexoDir]# hexo init
#初始化成功查看都有什么文件
[root@vultr hexoDir]# ls
_config.yml node_modules package.json package-lock.json scaffolds source themes
#安装Hexo依赖
[root@vultr hexoDir]# npm install
#安装远程部署插件(此刻博客已经创建成功)
[root@vultr hexoDir]# npm install hexo-deployer-git --save
#安装本地启动插件,主要用于本地预览
[root@vultr hexoDir]# npm install hexo-server --save
3.4 本地测试看看效果
1
2
3
4
5
6
7
8
#启动本地服务,外部网络无法访问
[root@vultr hexoDir]# hexo server
INFO Start processing
INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.
#重开一个终端,使用文本浏览器eslinks访问网址
#首先安装eslinks
[root@vultr ~]# yum -y install elinks
[root@vultr ~]# elinks http://localhost:4000/
3.5 部署到GitHub上
1
2
3
4
5
6
7
8
9
#进入博客目录
[root@vultr ~]# cd /usr/local/hexoDir/
#清除缓存,若是网页正常情况下可以忽略这条命令
[root@vultr hexoDir]# hexo clean
#hexo generate 生成静态页面
[root@vultr hexoDir]# hexo g
#hexo delopy 部署
[root@vultr hexoDir]# hexo d
#部署成功之后将在github仓库中看到部署的文件

4 成果

4.1 访问github为我们提供的域名(youusername.github.oi)

以下展示的博客,笔者使用了NexT主题

4.2 用自己的域名访问(前提需要将自己的域名解析到博客所在的服务器)

这里不做演示了,注意如果你的VPS服务器没有用Nginx做反向代理,那么解析成功之后需要用你的域名+端口号4000可访问到,因为Hexo启动的端口是4000

5 使用Nginx反向代理服务器以实现不带端口的域名访问

安装并启动Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#安装Nginx
[root@vultr hexoDir]# yum -y install nginx
#查看Nginx状态(Centos6)
[root@vultr hexoDir]# service nginx status
nginx is stopped
#启动Nginx(Centos6)
[root@vultr hexoDir]# service nginx start
Starting nginx: [ OK ]
#设置Nginx开机自启动(Centos6)
[root@vultr hexoDir]# chkconfig nginx on
#为Hexo创建一个规则 进入Nginx配置目录
[root@vultr hexoDir]# cd /etc/nginx/conf.d/
#创建一个新的配置文件用于Hexo博客
[root@vultr conf.d]# touch hexo.conf
#编辑hexo.conf
[root@vultr conf.d]# vim hexo.conf
#按i进入编辑模式,填入以下ginx配置,填充成功后按Esc,再按:wq保存
#成功添加hexo规则之后重启Nginx
[root@vultr conf.d]# service nginx restart
Stopping nginx: [ OK ]
Starting nginx: [ OK ]

Nginx配置

1
2
3
4
5
6
7
8
9
10
11
server {
listen 80;
#这里填上你自己的博客域名,我的就是blog.berlin4h.top
server_name blog.com;

location / {
#监听80端口和bolg.com域名指向博客的内容文件夹
root /usr/local/hexoDir/public;
index index.jsp index.html index.htm;
}
}

Centos7安装Nginx

1
2
3
4
5
6
7
8
9
10
#安装Nginx
[root@vultr hexoDir]# yum -y install nginx
#查看Nginx状态
[root@vultr hexoDir]# systemctl status nginx
#启动Nginx
[root@vultr hexoDir]# systemctl start nginx
#设置Nginx开机自启动
[root@vultr hexoDir]# systemctl enable nginx
#重启Nginx
[root@vultr hexoDir]# systemctl restart nginx

Nginx启动成功之后可用自己的域名访问到博客

6 发布文章

1
2
3
4
5
6
7
#进入博客根目录下
[root@vultr hexoDir]# hexo n "VPS服务器搭建Hexo+GitHub+Nginx"
#会在博客根目录下的source文件夹中的_post文件夹中多了一个文章名字.md文件
#然后将写好的md文件内容复制到刚生成的md文件中,回到博客目录,部署博客
[root@vultr hexoDir]# hexo clean
[root@vultr hexoDir]# hexo g
[root@vultr hexoDir]# hexo d

现在就可以开始个人博客之旅了

至此博客基本就搭建完毕

-------------The End-------------
坚持原创技术分享,您的支持将鼓励我继续创作!