0.写在前面
在之前的腾讯云服务器上,我的博客使用的是wordpress(虽然并没有写多少东西 (..!) ),作为一款功能强大的cms,用来搭建博客有点”大炮打蚊子”,而且由于采用的是动态页面,有时会出现DB error之类的错误.作为一个写博客的萌新,实在是有点招架不住.后来了解到了利用nodejs生成静态页面的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,为博客添加评论系统等,这里就不展开了.