部署Hexo最全面的方法,就交给你了~
When it’s time to move on, I hope you don’t back down.
Hexo是什么?
(这个我就不多BB了,去官网看看吧,介绍什么的真的不适合我……)
你可能需要有如下准备:
1,一台电脑(Windows或Linux均可,差别不大)
2,拥有自己的域名,没有的话可以在腾讯云或者阿里云上申请。(国内的便宜但是需要备案)
3,一个带有Page服务的仓库(推荐Github,Coding)
4,最后就是耐心(这个过程可能会很枯燥的说~)
正式文章之前
1,障碍扫除。
在其他Hexo 和 Github 搭建博客的文章中你肯定见过这些:Hexo、Github Pages、SSH 配置、域名解析、A 记录、CNAME。这些究竟是什么东西?有时候真的会很懵,搞得自己晕头转向,我曾今在搭建博客的路上走了不少弯路,我只是希望你能少走些弯路。这一部分就是先帮我们理清思路的。
2,模块区分。
这里将 Hexo 和 Github Pages 搭建博客的流程一共分为如下 3 大模块:
Hexo 本地建站:这一模块利用 Hexo 在本地(你的电脑)内生成你的网站,可以通过 http://localhost:4000/ 来查看最后生成的网站;
部署到 Github Pages:这一模块介绍 Github Pages 服务以及利用 Hexo 将上一模块中生成的网站部署到 Github 服务器,从而可以通过 your_name.github.io 访问你新建的博客。其中,your_name 是你 Github 的用户名;
绑定独立域名:这一模块介绍如何绑定自己购买的独立域名,从而可以通过自己购买的网址访问自己的网站,如果没有购买独立域名的打算,这一模块可以不用进行。
1,Hexo 本地建站:
1-1,安装Hexo
根据Hexo官方的介绍:安装 Hexo 的前提是先安装 Node.js 和 Git。
首先去这两个网站下载好这两者的安装包,这里提供淘宝源,国内的会比较快一些。(注意:下载最好为msi引导安装文件,当然你下载其他的也肯定可以,不过要自己手动配置环境变量)
安装完成之后:在终端cmd中输入
1 npm install -g hexo-cli
1-2,部署文件
1,建立文件夹。
首先在自己喜欢的地方新建一个文件夹,用来存放自己的博客数据。这个文件夹的名字随便起。我的是blog
(注意:在更换主题时要备份数据库,数据很重要)
2,初始化文件夹。
1,切换到自己的文件夹
1 cd 到你的文件夹中2 ,更改镜像源
1 npm config set registry "https://registry.npm.taobao.org" <!--由于默认的 NPM 镜像实在太慢太慢,我们把源替换成淘宝的镜像,在终端中执行如下命令:-->3,依次执行下面两条命令,建立我们的新网站:
1 hexo init
1 npm install
3,本地测试:
3-1,在终端中敲入如下命令:
1 | hexo generate |
3-2,熟练了之后就输入首字符就行。例如 hexo g,hexo s
1 | hexo server |
3-3,在自己本机的浏览器中输入:http://localhost:4000/ 大功告成。就可以看到自己的landscape的主题页面。
总结:
hexo init [folder]
:新建一个网站。如果没有设置 folder
,Hexo 默认在目前的文件夹建立网站;
hexo generate
:生成静态文件;
hexo server
:启动服务器。默认情况下,访问网址为: http://localhost:4000/
;
hexo deploy
: 部署网站(后文会用得);
hexo clean
: 清除缓存文件 (db.json
) 和 public
文件夹下已生成的静态文件。
额外的:更换主题,
1,Hexo-Theme-Butterfly主题安装
1 | git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/Butterfly |
2,hexo 4.2以上的系统需要安装cheerio
1 | npm install cheerio@0.22.0 –save |
3,安装pub和stylus渲染器
1 | npm install hexo-renderer-pug hexo-renderer-stylus --save |
Tips:如果其中出现了error等错误,可能是由于镜像源没有更新导致。故本文具有时效性。
2,部署到 Github Pages
这一步的操作由之前介绍到的git来完成。按住鼠标右键,选择Git Bash Here ,如图所示:
根据官方文档将本节分为3步——走战略!
2-1,Creating a repository
参考github的官方文档,Create a new repository on GitHub 已经图文并茂将如何建立一个 repository 交待得非常清楚明白了,唯一要注意的是,第二步里的 Repository name 一定要是
your_name.github.io
,your_name
是你的 Github 用户名。
2-2,Setting up Git
根据 Github 的官方文档 Setting up Git,这一操作的目的是 Tell Git your name so your commits will be properly labeled 和 Tell Git the email address that will be associated with your Git commits,也就是告诉版本控制软件 Git 接下来这台电脑上提交的文件是 E-mail 地址是什么的谁谁谁提交的。在 Git Bash 中执行如下代码即可:
1 | git config --global user.name "YOUR NAME" |
其中,YOUR NAME
是自己取的名字,YOUR EMAIL ADDRESS
是自己的邮箱。由于自己的博客网站就自己一个人提交,所以就都设置成跟 Github 用户名和邮箱相同了。但其实是可以不同的,因为对于很多项目,并不只有一个开发者,Github 允许多人向同一个 Repo 提交,这里提供用户名和邮箱,只是为了搞清楚哪些代码是谁谁谁提交的。
2-3 Authenticating with GitHub from Git
为了实现这个在浏览器中输入域名就能访问文件,首先我们先要让本地的电脑和 Github 服务器建立起某种联系,也就是让 Github 服务器信任由我这台电脑提交的东西,接受,并存放到
your_name.github.io
这个 Repo 下面,与 Github 服务器建立信任的这个环节就是身份认证(Authenticating )。Github 的官方文档 Categories / SSH 可以参考。
在git bash中执行:(切记不要再cmd中执行,因为这压根就不是cmd能够识别的命令)
1,Git Bash 下执行如下命令,生成 SSH key
1 | ssh-keygen -t rsa -b 4096 -C "your_email@example.com" |
其中,your_email@example.com
是你的 Github 注册邮箱。其中,your_email@example.com
是你的 Github 注册邮箱。然后,Git Bash 中会出现
其中,your_email@example.com
是你的 Github 注册邮箱。然后,Git Bash 中会出现
1 | Enter a file in which to save the key |
这里 id_rsa
是生成的 key 文件的文件名,默认都是这个;如果不是,在后面用到 id_rsa
的地方请替换成出现的名字。这条信息是让你选择 SSH key 存放的地点,按回车选择默认的即可。回车后,还会出现
1 | Enter passphrase (empty for no passphrase): [Type a passphrase] |
让你设置使用 SSH 密钥时的密码,由于我们都是在自己个人的电脑上操作,所以仍然回车,不设置密码即可。
2,将 SSH key 添加到 ssh-agent
在 Git Bash 下执行如下命令,开启 ssh-agent
1 | eval "$(ssh-agent -s)" |
然后我们要将这个 SSH key 添加到 ssh-agent 里去,运行如下命令,其中 id_rsa
是你的 key 文件的文件名:
1 | ssh-add ~/.ssh/id_rsa |
3,将 SSH key 添加到 Github 账户
手动添加,登录 Github 帐号,依次点击自己的头像,Settings,SSH and GPG keys,New SSH key 或者 Add SSH key, 在 Title 这里输入 Key 的label,比如 your_name - PC
,然后在 Key 里面把 SSH Key 粘贴进去,点击 Add SSH key 大功告成。
4,测试 SSH 连接
1 | ssh -T git@github.com |
你可能会看到类似于
1 | The authenticity of host 'github.com (192.30.252.1)' can't be established. |
输入yes
1 | Hi username! You've successfully authenticated, but GitHub does not |
至此为止,我们已经建立起了跟 Github 服务器的连接。
2-4,Hexo 部署
Step 1: 在终端中运行如下命令,安装 hexo-deployer-git
插件:
1 | npm install hexo-deployer-git --save |
Step 2: 在 _config.yml
中修改参数,如下所示:
1 | deploy: |
至此,在终端执行 hexo deploy
命令,就可以把我们的网站部署到 Github 服务器上。在第一次部署的时候,Github 还会跳出来一个小窗口,让你输入 Github 帐号和密码,输入即可。
3,绑定独立域名:
在腾讯云的我的域名下方找到解析,就是将github的服务器的ip添加的自己域名的解析行列中。
github的ip服务器地址有两个,如下图所示:
这就成功了!
在 source
文件夹下添加一个 CNAME
文件,里面就一行内容,写上自己的域名,比如 your.site
。 在终端中运行
1 | hexo generate |
Hexo 在生成 public
文件夹内容的时候,会自动把 CNAME
文件复制过去,这样,public
文件夹下就也有 CNAME
文件了。再运行
1 | hexo deploy |
将其部署到 Github,让 Github 知道 your_name.github.io
对应哪个域名。