建站
在任意目录创建 blog 文件夹以存放博客文档,我选用在自己的 home 目录里,依次执行以下命令:
$ mkdir blog # 在选定目录下创建blog文件夹
$ cd blog # 进入blog文件夹,之后的所有操作都在这个文件夹内
$ hexo init # 初始化Hexo
$ npm install # 初始化完成在目录下执行
注意:之后的 npm 安装一定要在 “/blog” 文件夹内进行,否则:
npm WARN saveError ENOENT: no such file or directory, open ‘/home/vestin/package.json’
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open ‘/home/vestin/package.json’
npm WARN vestin No description
npm WARN vestin No repository field.
npm WARN vestin No README data
npm WARN vestin No license field.我自以为像 apt 那样的安装一样,其实不然,这应该和我刚才使用 npm install 命令有关,这个命令会在运行目录创建以上错误提示的 package.json 文件,而没有这个步骤就会导致找不到这个文件,致使安装失败。
至此,我们就可以启动Hexo了,以下两种方法任选其一:
$ hexo server
$ hexo s
启动完成将出现如下提示:
vestin@orangepizero:~/blog$ hexo s
INFO Start processing
INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.
这时,在局域网的主机上输入 [OrangePi的IP]:4000
即可打开博客。回到 OrangePi 按 Ctrl-C
可以关闭服务。
安装melody主题
鬼知道我找了多久的主题,我这人总是这样,扭扭捏捏的,不是块做大生意的料…
最终我找到“勉强”让我喜欢的是 melody 主题,来自 Github 账户 Molunerfinn 。
注意:配置文档提到的 _config.yml 是下载下来的主题目录下的 _config.yml 而不是 Hexo 根目录 (blog) 下的 _config.yml ,修改错误将导致
hexo g
命令报以下类似错误:Unhandled rejection TypeError: /…/Hexo/themes/melody/layout/includes/layout.pug:31
Cannot read property ‘css’ of undefined
将本地Hexo博客部署到远端Github
上传 GitHub
在Github上新建一个仓库 (repository) ,注意仓库名字必须为:
你的Github账户名.github.io
因此我自己的就为:
Vestin7.github.io
在博客根目录下执行命令以添加部署功能:
$ npm install --save hexo-deployer-git
然后我们需要配置博客根目录下的 _config.yml 文件:
$ nano _config.yml
进入 _config.yml 后到文件末端,将此处修改为:
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: https://github.com/你的Github账户名/你的Github账户名.github.io
branch: master
注意:这里的冒号后都要加空格。
按 Ctrl-X
退出,按 Y
保存。
配置 SSH key
$ cd ~/. ssh # 检查本机是否已存在的ssh密钥
如果提示: “No such file or directory” 则执行以下命令 :
$ ssh-keygen -t rsa -C "xxx@xxx.com" # 邮箱地址
一直回车,最终会在用户目录下创建 /.ssh
文件夹,进入,找到 .ssh/id_rsa.pub
文件,记事本打开并复制里面的内容,打开你的 Github 主页,进入个人设置 > SSH and GPG keys > New SSH key ,将刚复制的内容粘贴到 “key” 那里, “title” 随便填,保存。
此时回到OrangePi继续配置:
$ git config --global user.name "xxx" # 你的github用户名,非昵称
$ git config --global user.email "xxx@xxx.com" # 填写你的github注册邮箱
最后执行如下命令,会要求输入 Github 的用户名和密码:
$ hexo d
执行完成后,就已经可以通过如下域名来访问我们的博客了:
你的Github账户名.github.io
绑定域名
1. 向Github Pages添加CNAME记录
同时在 Github Pages 仓库(即刚刚创建的名为“你的Github账户名.github.io”的仓库)和 blog/source 目录添加一个名为 “CNAME” 的文件,并保存一个域名,例如:
kizuna.ink
注意:文件名一定要大写,无后缀,且其中只能包含一个顶级域名。
保存两个文件就不用担心每次执行 hexo d
后导致CNAME被覆盖掉了。
2. 向 DNS 配置中添加记录
我只添加了一条 CNAME 记录,可以直接指向另一个域名:
blog CNAME Vestin7.github.io
3. 等待你的 DNS 配置生效
对DNS的配置不是立即生效的,过10分钟再去访问你的域名看看有没有配置成功,等待时间由自己域名设置的 TTL 时间决定。
通过公网访问的是 Hexo 在 Github 上部署的静态页面,因此可以不用 OrangePi 服务器在线,亦能访问博客网站。
出现启动服务成功的提示后,即可使用自己的域名访问博客,例如我上面的设置,域名如下:
blog.kizuna.ink