使用Git部署Hexo博客到Ubuntu服务器

本站服务器由UCloud( https://www.ucloud.cn/ )公司赞助提供!

Hexo是使用Node.js开发的静态站点生成器,支持Markdown语法写作,并且有着强大的插件系统,是不少技术开发者搭建个人博客的一个好选择,本文将介绍如何在一台Ubuntu云服务器上使用Git部署Hexo博客站点。

前提条件

  1. 安装Ubuntu操作系统的云服务器一台,同时还需安装Nginx和Git,分别用于静态页面托管以及版本管理部署等;
  2. 本地电脑安装node.js环境以及npm;
  3. 本地电脑安装Git环境;
  4. 本地电脑安装SSH终端;(非必要条件,但是安装了可以方便你访问云服务器,我用的是Xshell,也可以考虑用PuTTY、SecureCRT等)

了解完以上前提条件后,开始动手搭建自己的博客吧。

Nginx配置

购买一台云服务器,由于初期流量不是很大,服务器可以不需要很高的配置,等到需要时再升级(云服务器升级配置很方便的)。下面是我的服务器配置,我在服务器上安装了Ubuntu 16.04版本的操作系统。

登录远程服务器(使用SSH终端远程登录操作更方便),安装Nginx

1
sudo apt-get install nginx

安装完成后(这时我们还没有配置域名),在浏览器直接通过IP地址可以看到下面的网页提示,可以看到下面的网页提示说明安装成功。

接下来,创建/home/ubuntu/www/hexo_blog目录用于Nginx托管网页

1
2
cd /home/ubuntu
sudo mkdir -p www/hexo_blog

使用vim修改Nginx的默认配置文件

1
sudo vim /etc/nginx/sites-available/default

将其中的root指向我们上一步创建的/home/ubuntu/www/hexo_blog目录,同时配置你购买的域名到server_name

1
2
3
4
5
6
7
8
9
10
11
12
...
server {
...
...
root /home/ubuntu/www/hexo_blog; # 指向你的托管目录
index index.html index.htm;
...
...
server_name blog.coderclock.com; # 设置你的域名
...

最后重启你的Nginx服务器,让配置生效。

1
sudo service nginx restart

完成Nginx配置后,接下来是Git配置。

Git配置

安装Git

1
sudo apt-get install git

在/home/ubuntu/下,使用Git创建一个名为hexo_blog的裸仓库(bare repo)。

1
2
cd /home/ubuntu/
git init --bare hexo_blog.git

为hexo_blog创建一个钩子,用于将静态的html页面传输到nginx指定的Web服务器目录下,即前面配置的/home/ubuntu/www/hexo_blog。

1
vim /home/ubuntu/hexo_blog.git/hooks/post-receive #新建一个名为post-receive的钩子文件

在文件中添加如下代码,指定Git的work-tree(工作目录)和git-dir(配置目录)等

1
git --work-tree=/home/ubuntu/hexo_blog --git-dir=/home/ubuntu/hexo_blog.git checkout -f

最后保存并退出文件,同时设置文件为可执行文件

1
chmod +x /home/ubuntu/hexo_blog.git/hooks/post-receive

服务器环境的配置到此结束。

本地配置

本地需要先安装好Hexo和Git(不属于本文范畴,读者们自行搜索),在Hexo的工作目录下,编辑_config.yml文件配置部署信息:

1
2
3
4
5
6
...
deploy:
type: git
repo: ubuntu@云服务器的IP地址:/home/ubuntu/hexo_blog.git(前面服务器上建的裸仓库目录)
branch: master
...

保存退出后,在Hexo工作目录下,安装一个git部署的插件,执行如下命令

1
npm install hexo-deployer-git --save

安装好后,本地生成网页,查看是否有问题

1
2
hexo generate #生成静态页面
hexo s #部署本地环境,如果提示端口被占用使用 hexo s -p 端口号 自行指定某个端口解决

确定网页内容没有问题后,使用如下命令,将网页部署到服务器上去

1
hexo deploy

期间,如果不是使用SSH方式登录,部署的过程还需要输入Ubuntu服务器登录密码验证,如果部署成功,最后可以看到如下的log打印输出

1
2
3
4
5
6
7
...
...
...
Branch master set up to track remote branch master from ubuntu@106.75.96.230:/home/ubuntu/hexo_blog.git
To 106.75.96.230:/home/ubuntu/hexo_blog.git
* [new branch] HEAD -> master
INFO Deploy done: git

否则,表示部署失败,具体失败原因可以根据log输出进行定位解决。

总结

好了关于如何使用Git将Hexo博客部署到Ubuntu服务器上的操作就介绍到这里,最后感谢UCloud公司对本站的支持与赞助!

本文为技术视界原创作品,转载请注明原文出处:http://blog.coderclock.com/2017/05/20/hexo/use-git-deployment-hexo-blog-on-ubuntu-server ,欢迎关注我的微信公众号:技术视界

推荐文章