使用Hexo搭建个人博客(二)

本文说明:

本文是使用Hexo搭建个人博客系列的第二篇,主要包括

  • 本地安装hexo
  • 服务器配置
  • 把个人博客部署到服务器

关于购买VPS和注册域名,解析域名到IP请看:Hexo搭建个人博客(一)

接下来让我们一步步把博客给搭建起来,跟着这篇博客做,最终就可以把博客部署到服务器上,并且运行起来~

本地环境配置

安装依赖环境

安装Hexo需要先安装node.js和git

安装Hexo

只需要一行命令:

$ npm install hexo-cli -g

例如我的博客目录是 /MyBlog
通过命令

cd /MyBlog

切换到博客目录

然后在博客目录下初始化hexo博客,blog为博客名,可随意更改

hexo init blog  

进入博客目录并安装插件依赖

cd blog
npm install

最后执行命令

hexo g
hexo s 

顺利的话,应该能看到终端打印出地址:http://localhost:4000/

点击地址打开浏览器,应该能看到Hexo默认主题的界面了~当然,我的主题已经换了,所以打开是这样的:

首页

安装部署依赖环境

部署Hexo使用

hexo deploy

命令即可,但是在这之前,需要先安装依赖环境server和deploy-git

在终端输入:

$ npm install hexo-server --save  #
$ npm install hexo-deployer-git --save

至此,本地环境就搭建好了,除了这个,我们还需要搭建服务器的环境,所以接下来就是服务器的配置。

服务器配置

安装Git和NodeJS

只需要两行命令

$ yum install git  # 安装git

curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -   # 安装NodeJS

创建Git用户

为了能让Hexo直接部署到VPS上,需要在服务器新建用户git

  • 步骤:
1
2
3
4
adduser git    # 添加git用户
sudo passwd git # 给git用户设置密码
chmod 740 /etc/sudoers
vim /etc/sudoers

然后找到这一行

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

并添加

1
git ALL=(ALL) ALL

接下来我们需要把电脑的公钥配置到服务器,这样才能向服务器提交代码

1
2
3
4
5
6
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
#然后在本地执行 cat ~/.ssh/id_rsa.pub | pbcopy ,将公钥复制粘贴到authorized_keys
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh

OK,到这里,我们就把服务器git用户给配置完了,可以通过命令

1
ssh -v git@SERVER  # SERVER是你的服务器地址

来测试一下,是不是可以免密码登陆到服务器,如果可以,那就说明没问题了。

安装和配置Nginx

安装Nginx

由于我的vps上运行的是CentOS 6 的系统,直接安装Nginx会报错,解决方法请参考这篇博客:CentOS 6 安装Nginx

CentOS 7 可以直接执行命令:

$ sudo yum install epel-release
$ sudo yum install nginx    

然后再启动Nginx:

sudo systemctl start nginx

CentOS 6 启动Nginx的命令应该是:

/etc/init.d/nginx start

这个时候在浏览器输入服务器ip地址或者域名,就能看到Nginx欢迎页。

配置Nginx

  • 在 /etc/nginx/conf.d/ 创建虚拟主机配置文件 blog.conf

加入以下内容:

  • server_name: 改成你的服务器名字,或者域名
  • root: 改成你的博客根目录
1
2
3
4
5
6
7
8
9
10
11
server
{
listen 80;
#listen [::]:80;
server_name bluelzy.com www.bluelzy.com;
index index.html index.htm index.php default.html default.htm default.php;
#这里要改成网站的根目录
root /var/www/hexo;

include other.conf;
}

然后再重启一下Nginx,即可

service nginx restart

创建Git仓库

既然本地环境配好了,服务器所需要的环境也配好了,那么现在就需要在服务器建一个仓库,用来管理博客的代码,这一块比较重要,关乎到能不能成功部署博客。

其实就是两步:

  • 创建仓库
  • 设置git hook

创建仓库

执行以下命令:

1
2
3
$ cd ~ 
$ mkdir blog.git && cd blog.git
$ git init --bare

解释一下这一行:

git init --bare

意思是初始化一个裸仓库,创建一个裸仓库,并且这个仓库是可以被正常 clone 和 push 更新的, 裸仓库不包含工作区,所以并不会存在在裸仓库上直接提交变更的情况。

设置git hook

我们使用 post-receive这个钩子.在 ~/blog.git 裸库的 hooks文件夹中,
新建post-receive文件。

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

在文件中加入:

1
2
#!/bin/sh
git --work-tree=/var/www/hexo --git-dir=~/blog.git checkout -f

注意: –work-tree=/var/www/hexo 要改成你的博客根目录,也就是上面Nginx配置文件中的root

保存退出(wq)

然后再赋予这个文件运行的权限

chmod +x post-receive


OK,到这一步,服务器的配置也已经全部完成了。

恭喜你,如果能按着博客一步步看到这里,并且一切正常,那么你离成功搭建一个博客,还差最后一步….

本地配置_config.yml

打开Hexo站点目录下的_config.yml文件,找到 deploy关键字

1
2
3
4
5
deploy:
type: git
repo: git@SERVER:/home/git/blog.git // 仓库地址
branch: master
message: 提交的信息

把SERVER改成你的服务器地址,然后保存文件,大功告成!

测试

我们使用

1
2
3
hexo clean
hexo g
hexo d

把Hexo从本地部署到服务器上,执行完之后,在浏览器访问你的服务器地址,应该就能看到博客首页了。

以后写好文章,再执行上面这三句命令,就可以实现自动化部署了,真是人生一大乐事(捂嘴)

总结&期望

这篇文章从本地环境到服务器环境,再到自动化部署都作了一个详细的说明,从无到有搭建起了一个个人博客。接下来我会结合自己的博客,介绍一下

  • 主题选择
  • 主题配置
  • 第三方服务

参考

本文结束啦感谢您的阅读