玩命加载中 . . .

Hexo+Matery搭建个人博客(一):安装与部署


介绍如何用Hexo搭建个人博客,并使用Matery主题使之变的很好看。这是一份魔改记录,写下来留待以后查询。

1 Hexo 搭建

之前我一直用 WordPress 做网站,但是后来感觉 Hexo 好像更得劲而且轻量一点,最关键的一点是好多主题都比我能找到的 WordPress 主题要好看不少,没错我是颜狗🐶,所以就换了。发现这两者之间有很大不同,我们用 Hexo 写博客其实在本地写好,然后用 Hexo 生成再把静态网页部署到服务器去。网上大家一般都是部署到 GitHub 的仓库里,完全免费。但我既然已经有了一个服务器,就没必要再搭到 GitHub 里,于是就有了下面的折腾经历。本人菜鸡,如有不当之处请大佬指出。

1.1 非常规操作

刚使用 Hexo 时,我使用了一种「非常规」的操作把我的网页映射出去。就是我直接在服务器上装了 Hexo ,写好帖子后将帖子上传,然后使用 Hexo g 指令,它就已经把网页生成在 public 文件夹里,我于是就用 Apache 把这个文件夹直接放了出去,就可以访问了。

这个方法我觉得还挺方便的,但可能会带来很多问题。比如加重服务器的工作量,管理复杂,本地无备份……,我甚至都没有用到部署命令 hexo d ,这让我觉得有些不安,所以还是改用正常方法,下面就是正常方法。

1.2 本地安装 Hexo

首先安装 node.js ,关于 node 的安装,首先要去Hexo 官方文档上看一下版本要求,要安装对应的版本,截至本文发布时,Hexo 所要求的 node 版本为最低10.13,推荐12以上。安装操作可以看 菜鸟教程,也可以查些别的资料,我就不在这里赘述了。

除了 node.js 外,还要安装 git ,用于部署,安装的过程以及相关初始化操作也可以去 菜鸟教程 上找。

安装好后,直接通过以下命令安装 Hexo

npm install hexo-cli -g

接下来找个地方当作你的博客位置,然后在该目录下执行以下命令:

hexo init blog

它就会初始化一个叫做 blog 的文件夹这就是你的博客,进入这个博客,安装依赖:

cd blog
npm install

这样一来,你的博客就装好了,接下来只要运行以下指令:

hexo s

在浏览器中输入 localhost:4000 就能看到运行的博客了。

要想写博客,直接在 source/_post 文件夹下,新建 md 文档写就可以,写完执行以下命令:

hexo g	#生成
hexo d	#部署

实际上目前为止第二条命令还无法执行,因为我们还没有设置要部署的位置。下面这部分介绍如何进行部署。

2 部署到个人服务器上

我的需求是要部署到个人服务器上,因此我会针对这部分进行介绍。其实就是在服务器上先建一个 git 仓库,然后每次都由 Hexo 把网页上传到这个仓库,再利用一个 钩子 自动部署到目标文件夹下,再用 Apache 放出去就完成。

我之前已经利用 gitea 搭建了一个 git 服务器,所以各种操作就很简单,前半部分设置基本和在 GitHub 上操作没什么两样,下面我会介绍从零开始的方法。

2.1 搭建仓库

2.1.1 新建用户并设置免密登录

首先确定你在服务器上也安装了 git ,然后在服务器上新建一个 git 用户,用来管理各种仓库:

# 用root用户执行:
addusr git	#创建用户
passwd git	#设置密码

新建完后给 git 添加 sudo 权限,执行下面的命令

vim /etc/sudoers

找到root ALL=(ALL:ALL) ALL 类似的一行,在下面添一行一样的,只是把root换成git。改完后用 :q! 保存。

新建一个/home/git/.ssh 目录。

mkdir -p /home/git/.ssh	
sudo chown -R git:git /home/git

然后执行下面的操作:

su git	#切换至git用户
cd ~/.ssh

然后在本地的机器上创建一个 ssh 密钥,当然你有的话就不用创建了,创建好后把公钥内容复制,之后进行下面的步骤:

vim authorized_keys

把公钥粘贴进去。

2.1.2 创建 blog 仓库

创建一个叫做 blog 的仓库:

sudo mkdir /var/repo
cd /var/repo
sudo git init --bare blog.git

2.1.3 配置钩子

加一个自动部署的钩子:

sudo vim /var/repo/blog.git/hooks/post-recieve

写入:

#!/bin/sh
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

保存并退出,然后设置权限:

sudo chmod +x /var/repo/blog.git/hooks/post-receive
sudo chown -R git:git /var/repo/blog.git

2.2 本地测试和连接

接下来我们在本地操作,先用如下命令测试仓库搭建是否成功:

git clone ssh://git@your_ip:port/var/repo/blog.git	#your_ip是你服务器的ip,port是你登录ssh的端口

如果克隆成功,那仓库就没问题。

接下来在 Hexo 根目录下 _config.yml 文件中修改如下部分为:

deploy:
	type: git
	repository: ssh://git@your_ip:port/var/repo/blog.git
	branch: master

都配置完毕后,直接在本地命令行输入 hexo d 即可实现部署。如果没有报错,就可以去服务器的 /var/www/hexo/ 目录下看看是不是正常生成了网页。

至于Apache 的操作,同学们可以参考我 这篇博客 。至此,你的博客已经完美就绪,下一篇文章我将记录我主题配置及优化的过程。

3 参考内容

Hexo | Docs

git | Documentation | Book | 4.4


文章作者: Mond
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 Mond !
  目录