Rock's blog

兴趣是最好的老师

0%

利用腾讯云服务器搭建hexo博客

0.写在前面

在之前的腾讯云服务器上,我的博客使用的是wordpress(虽然并没有写多少东西 (..!) ),作为一款功能强大的cms,用来搭建博客有点”大炮打蚊子”,而且由于采用的是动态页面,有时会出现DB error之类的错误.作为一个写博客的萌新,实在是有点招架不住.后来了解到了利用nodejs生成静态页面的hexo,感觉比较适合我这样的懒人.

本篇博客其中部分内容引用了以下两篇文章,请不明白的同学访问其链接,取长补短,在此也感谢这两篇文章对我搭建博客的帮助.

在 Ubuntu 14.04 服务器上部署 Hexo 博客

【腾讯云的1001种玩法】Hello Hexo之静态博客搭建+自动部署

1.搭建流程

1.1 hexo的基本工作原理在我理解中是通过本地的hexo软件解析作者用markdown写好的文件,根据配置生成各种html css js 文件,上传到服务器的指定文件夹下.服务器端通过nginx开启访问服务,浏览器就可以通过访问服务器看到你的网页了.

1.2 我的虚拟主机采用ubuntu16.04镜像,服务器采用nginx.本地端使用的是kali(可能使用ubuntu会方便一些).

首先需要在本地端安装nodejs

apt-get install nodejs

在安装过nodejs后npm也自动安装好了
然后再安装hexo

npm install hexo-cli hexo-server -g

hexo-cli 是 Hexo 的命令行工具,可用于快速新建、发布、部署博客;hexo-server 是 Hexo 的内建服务器,可用于部署前的预览和测试。-g 选项,表示全局安装。

接下来,我们初始化一个hexo文件夹,以后所有对hexo的操作都在这个文件夹中进行了

hexo init $PATH/$DIR

这里$+大写的都是用户自己定义的部分(后文同上),用于选择hexo存放在本地的位置

我们先不管服务端的配置,先在本地测试一下.刚才在init的时候hexo已经为我们自动生成了一篇hello-world文章,类似如下

---
title: Hello World
comments: true
---

#接下来是正文......

当然,一篇文章可以定义许多属性,只要写在”—“之间就可以,这里我也是在学习,就不班门弄斧了.相信大家也很容易见文知意.如果想要自己创建一篇文章,只需要使用

hexo new $ARTICLE_NAME

这里我们创建了一篇博文,使用new命令,是不是很简单

接着我们需要安装一些软件来将我们写好的md文章转换成html等文件

npm hexo-deployer-git --save

见证奇迹的时刻!!!

执行:

hexo g && hexo s

打开你的浏览器,输入127.0.0.1:4000,是不是看到了一篇简单的hello-world.其实刚才的第一个命令用于生成静态的文件,第二个命令开启了一个侦听于本地4000端口的服务程序,将刚生成好的静态文本展示了出来,就是这么的简单.

1.3 服务端的搭建

接下来在服务器端,我们需要搭建nginx服务

apt-get install nginx git

git用处很多,这里用于创建一个仓库

先创建一个裸仓库

mkdir /var/$WEB
chown -R $USER:$USER /var/$WEB
chmod -R 755 /var/$WEB

我们在var下创建了一个目录,用来作为仓库.然后修改所属和权限,使$USER拥有相应的权限,然后创建仓库:

cd /var/$WEB
git init --bare $GIT_NAME.git

接下来配置nginx托管文件目录,并修改相应权限

mkdir -p /var/www/$HEXO
chown -R $USER:$USER /var/www/$HEXO
chmod -R 755 /var/www/$HEXO

修改nginx的配置:

vim /etc/nginx/sites-available/default

将nginx根目录修改为托管文件目录

......
server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/$HEXO; # 需要修改的部分
......

保存退出,并重启nginx

systemctl restart nginx

1.4 创建git钩子

接下来,在服务器上的裸仓库 $WEB 创建一个钩子,在满足特定条件时将静态 html 文件传送到 Web 服务器的目录下,即 /var/www/$HEXO.

vim /var/$WEB/$GIT_NAME.git/hooks/post-receive

在该文件中添加两行代码,指定 git 的工作树(源代码)和 git 目录(配置文件等).

#!/bin/bash
git --work-tree=/var/www/$HEXO --git-dir=/var/$WEB/$GIT_NAME.git checkout -f

保存并退出文件,并让该文件变为可执行文件

chmod +x /var/$WEB/$GIT_NAME.git/hooks/post-receive

到这里,服务端的配置基本结束

运行以下命令,你应该就可以通过访问服务器看到自己的博客了

hexo g && hexo d

期间还会要求你输入服务器登录密码

是不是很开森呢.

接下来我们可以自由选择对我们的博客进行下面的一些完善,比如更换更酷的主题,将站点更换为https,为博客添加评论系统等,这里就不展开了.