摘要
网上已经有很多使用 Hexo 搭建博客的教程了,这些教程都是非常详细的。我本人也是按照这些教程搭建出属于自己的博客,不过一方面实际操作中会因为生产环境的不同,搭建博客会遇到很多坑,一方面也是自己这几天学习的总结,还是在这里总结并分享自己的经验,毕竟从同是小白的我眼中更容易关注到新手会遇到的问题。首先是基于 Hexo+Github 的方式搭建。
准备
搭建博客用到的技术有:
- Nodejs
- Git
- Markdown
如果只是实现博客的搭建,不了解这些技术问题也不是很大,只需要了解就行。Hexo博客是基于Nodejs的,简单理解就是生产环境,Git作用是代码管理以及后续使用Github部署;Markdown则是用来写博客的,非常简单。当然为了更好的学习,前两项是基础,我还得继续深入学习。
本地博客
Git安装
从这里下载windows版Git,一路默认安装即可。软件自带命令行工具 Git Bash 和GUI界面(鼠标右键菜单)。
安装后可以鼠标右键使用Git Bash输入以下命令查看Git版本测试是否正确安装
还可以设置自己的信息
Git每次commit提交时,要记录提交人身份信息,包括用户名
name
和邮箱
Nodejs安装
从官网下载LTS版本,或者中文官网下载最新版,一路安装即可。
为了在任何目录下使用命令行,需要配置环境变量。一般windows下默认会配置环境变量,安装参考教程。安装完毕后,在命令行中(win+R,输入“cmd”或者使用 git bash)查看安装node版本
如果输出如下面等字样说明安装正确
Hexo本地部署
安装Hexo cli
Hexo是Nodejs的一个包或一个模块,因此使用npm
命令安装。任意目录下鼠标右键选择Git Bash
,安装Hexo命令行工具
npm是Nodejs的包管理器,安装包会从官方镜像下载,速度非常慢。安装 Hexo 需要用到这一命令,因此需要切换国内镜像,提高下载速度。我们可以使用 cnpm 代替npm,或者安装 nrm 镜像管理工具。
这里我们使用最简单的方法,设置安装包的镜像来源为淘宝镜像,这样以后安装包均是从淘宝镜像下载
创建本地项目
Hexo安装完成后,要生成一个本地Hexo项目,名字叫blog
,执行以下命令,Hexo会在指定文件夹中创建博客需要的文件
启动本地服务器预览
或使用简写
正确输出
Hexo默认端口是4000,在浏览器打开localhost:4000
可以看到预览效果如下:
一般在这里最容易出现的坑就是4000端口被占用,导致浏览器始终无法显示正确结果。如果不能正确预览,可以试试使用
-p
参数指定其他端口
|
|
或者使用命令查找占用4000端口的进程
最右列是进程ID,可以看到PID为15112和19640。
调出任务管理器查看进程可以看到分别是福昕阅读器和chrome占用,关掉福昕进程重新启动服务能正常显示
创建新文章
|
|
使用new
创建新文章,在/source/_posts目录下就生成了一个First Post.md
文件。.md
表示markdown文件,可以使用Sublime Text等工具编辑,或者使用MarkdownPad2等专门的软件编写。
Hexo的其他用法以及主题更换可以参考官方或中文文档
生成静态文件
使用Hexo的静态编译命令
这时候会在blog目录下生成一个public目录,这里面就是编译后的静态文件。这里面就是我们的博客页面,可以直接本地用浏览器打开里面的html文件。后续要做的只是找一个服务器托管这个文件夹。
部署到Github
本地部署成功了,我们使用Github提供的免费服务Github Pages托管我们的博客,同时也可以管理我们的代码。
注册Github账号
首先我们需要一个Github账号,进入官网注册账号。下文用username
代替注册的用户名。
创建项目仓库
点击主页上的new repository创建一个新的仓库,这个仓库是用来管理托管我们博客静态文件。
Github中每个账号都拥有一个个人主页,这个主页只能是静态文件,并且通过一个特殊的仓库来存放,这个特殊的仓库名字必须是username.github.io。这个仓库的托管的网站,可以直接通过username.github.io访问,也可以绑定自己的域名。
此外,每个仓库可以创建一个gh-pages分支,该分支原来是用来作为该仓库项目静态文件预览的,默认通过username.github.io/projectname。也就是说如果我们新建一个blog仓库,再创建gh-pages分支托管public文件夹下面的静态文件,那么在浏览器访问username.github.io/blog也能访问我们的博客。
我们使用第一种方式,如下图(图片来自网络),创建好自己的仓库。
配置SSH Key
用Github管理项目时,可以使用https和SSH两种协议方式,为了更好的体验每次pull、push不需要验证,配置好SSH Key后Github通过公钥对用户授权。
Linux/Mac系统在
~/.ssh
下,win系统(我的是win10)在c/user/username/.ssh
下
使用Git Bash查看ssh文件
1 ls ~/.ssh
查看是否已经有id_rsa.pub和id_rsa两个文件,id_rsa.pub是公钥,id_rsa是私钥。如果有可以跳过下一步生成SSH Key,或者直接生成覆盖。
使用sh-keygen
命令生成Key
回车确认后,接着会提示输入两次密码,该密码是私钥的密码,在使用密钥的时候需要使用,如push的时候需要输入该密码。如果填写了,请记住。也可以一路回车,则默认密码为空。
|
|
接着复制公钥id_rsa.pub的内容,使用编辑器或者命令:
登录Github账号,从用户的Setting -> 菜单栏SSH and GPG Keys -> New SSH Key 进入,粘贴复制的key添加成功。有多台电脑可以使用同样的方法添加多个,并且可以在title
栏填写区分
配置后可以输入以下代码测试
如果最后输出一下内容表示成功配置了
如果设置SSH Key的时候设置了密码,中间也需要密码
部署
终于到部署这一步了,是不是很期待呢?
在blog项目中的_config.yml文件是配置文件,我们按以下方式填写
repo填写Github创建的仓库名字,点击仓库页面的Clone or download处复制SSH形式url
配置好后执行部署命令:
如果出现下面的提示表示成功
这时候浏览器访问uername.github.io
,就可以访问自己的博客了。到此博客就算基本搭建好了。
如果出现404页面可能是因此第一次部署有延误,稍等一会就好了;如果报错,那么很可能就是配置文件的冒号
":"
后面少了空格
绑定自己的域名
如果有自己的域名(或者自己去各大云等购买域名),在项目下的source
文件夹新建一个CNAME
文件(没有后缀),添加自己的个人域名,如mydomain.com
,然后重新生成静态文件并部署
|
|
最后在你购买域名的xx云的控制台处找到你的域名点击解析,添加一条记录,记录类型选择CNAME
,主机记录就是域名前缀,根据需要选择,如果想通过mydomain.com
直接访问,那么填写@
即可,想通过blog.mydomain.com
访问就填写blog
。其中记录值填写我们的github博客域名"uername.github.io"
。最后如图添加记录,直接在浏览器里输入"blog.mydomain.com"
就能直接访问我们的博客了。
结束
以上就是简单的使用Hexo搭建博客的过程,限于篇幅,暂时写到这里。后面还涉及到云服务器的使用,博客源码的管理以及自动部署问题。第一次写博客,而且自己水平有限,如果有错误,请指出。