用hexo创建博客
Contents
本文记录了我在Windows上用hexo搭建博客,并部署到我的云服务器上的步骤。
1. hexo搭建博客的工作原理
hexo是一个基于node.js的轻量级博客框架,用于在自己的工作机里生成一个完整的网站,并提供了本地预览和部署到云服务器的工具。
大多数操作都在自己的电脑上进行,只有最后几步发布到云服务器。
1.1. 在自己的电脑上建站
- 安装hexo。
- 用hexo生成一个hexo工作目录。
- 用markdown写文章,将md文件保存到hexo工作目录下的source子目录中。
- 用hexo根据hexo工作目录生成一个完整的博客网站(包括html、css、js等),保存到hexo工作目录下的public子目录中。
1.2. 部署到云服务器上
- 将上一步生成的public子目录里的所有文件(包括html、css、js等)拷贝到云服务器的某个目录里。
- 启动nginx,将网页请求重定向到上一步的目录里,从而实现公网访问。
2. 准备工作
全部工作都在自己的PC机进行。
2.1. 安装node.js
从node.js官网下载页面下载node.js并安装。会一并安装npm。
用下面的指令检查安装是否成功。
|
|
2.2. 安装hexo
将npm的源设置为淘宝镜像,并下载安装hexo。
下面的命令可以在任何目录下进行。
|
|
用下面的指令检查安装是否成功。
|
|
3. 本地生成博客页面
随便找个hexo的工作目录,比如D:\abc\myblog>
。用命令行进入该目录,用hexo初始化该目录。
|
|
4. 将博客部署到云服务器
虽然可以将public目录里的所有内容都打包拷贝到云服务器再解包,但hexo提供了更方便的方法,可以在本地用一条命令就将网站文件推送到云服务器。
4.1. 准备git仓库
云服务器需要安装git。
|
|
在云服务器建立一个名叫git的用户,并切换到git用户下。
|
|
在git用户根目录下建立一个裸仓库。
|
|
进入该裸仓库,创建一个钩子,让这个仓库收到新提交时,将文件checkout到网站根目录里。 创建钩子的方法就是在裸仓库hooks目录里加一个脚本文件。
|
|
写入以下内容并保存。其中/path/to/www
是云服务器上的网站目录。
|
|
这样,每当该仓库接到提交,就会将提交的仓库内容checkout到目录/path/to/www
。
4.2. 用ssh密钥实现免密登录
在云服务器上用ssh-keygen生成公钥-私钥对。
将公钥保存到/home/git/.ssh/authorized_keys
这个文本文件中。
将私钥保存到本地工作机。
4.3. 配置hexo工作目录,实现一条指令完成发布
修改hexo工作目录下的_config.yml
。
找到deploy项,默认是这样的:
|
|
修改成这样:
|
|
然后再度生成本地网页并部署。
|
|
5. 让云服务器上的博客能被网页浏览器访问
配置nginx,将网页请求重定向到第4步的/path/to/www
目录中即可。
6. 参考资料
Author
LastMod 2020-03-04