开始使用hexo

我终于下定决心,摒弃typecho,投入了hexo的怀抱。之前不用hexo的原因是担心麻烦,的确,配置各种东西的复杂程度都比typecho上了一个台阶,但这未尝也不是一个乐趣。
于是乎,我很快便搭建了一个。

首先,在已经安装了宝塔面板和nginx环境的情况下,在宝塔面板的“网站”功能里先创建一个网站,目录为/www/wwwroot/blog.carkree.com

现在在服务器创建一个git钩子

1
2
3
4
5
6
cd /www/
mkdir hexo-deploy.git
cd hexo-deploy.git/
git init --bare
cd hooks
vim post-receive

修改post-receive为如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
echo "==== Start ===="
GIT_REPO=/www/hexo-deploy.git
WEB_ROOT=/www/wwwroot/blog.carkree.com

TMP_GIT_CLONE=/tmp/hexo-deploy-tmp

rm -rf $TMP_GIT_CLONE

git clone $GIT_REPO $TMP_GIT_CLONE

find $WEB_ROOT/* ! -name '.user.ini' ! -name '.htaccess' -exec rm -rf {} \;

cp -r $TMP_GIT_CLONE/* $WEB_ROOT/

rm -rf $TMP_GIT_CLONE

echo "==== Success ===="

保存退出后,执行命令:

1
2
3
chmod +x post-receive
chown -R www:www /www/wwwroot/blog.carkree.com
chown -R www:www /www/hexo-deploy.git

现在回到电脑上,我的电脑是mac。

首先用homebrew安装node:brew install node,用node -v,npm -v检查是否安装好了

在用户目录下创建一个文件夹,命名为hexo-blog,并进入该文件夹。

在该文件夹执行命令安装hexo:

1
npm install -g hexo

接着,在上层目录执行命令,初始化hexo:

1
hexo init hexo-blog

回到hexo-blog,执行命令:

1
2
hexo cl # 清理缓存
hexo s

这个命令的意义是启动本地hexo服务器,这时候访问http://localhost:4000 就可以看到hexo默认的初始页面了。

接下来,我们需要通过git把这些内容上传到服务器

在电脑上编辑_config.yml文件,把该文档结尾处改为这样:

1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repo: root@你的服务器IP:/www/hexo-deploy.git
branch: master

这里需要你已经设置好了服务器的ssh密钥登陆

我们还需要在电脑安装hexo-deployer-git,否则,推送的时候会报错“ERROR Deployer not found: git“:

1
npm install hexo-deployer-git --save

最后,在电脑hexo-blog文件夹里执行:

1
2
3
hexo clean # 清理缓存
hexo generate # 生成静态文件
hexo deploy # 部署到服务器

这时候就会神奇地发现,电脑本地这些内容已经部署到服务器的/www/wwwroot/blog.carkree.com目录了!


如果没有神奇地推送,报错很有可能是这样的:

1
2
3
4
fatal: detected dubious ownership in repository at '/www/hexo-deploy.git'
To add an exception for this directory, call:

git config --global --add safe.directory /www/hexo-deploy.git

这是由于Git认为/www/hexo-deploy.git这个仓库的所有者和当前执行git的用户root不匹配。
所以我们按照git给的提示执行git config --global --add safe.directory /www/hexo-deploy.git命令就会完美解决这个问题了。
当然了,也可以考虑创建一个部署专用用户。

以后每次更新文章的时候都需要执行上面这三个命令,都打一遍似乎略显麻烦,在~/.zshrc中添加一个别名就可以了

至此,hexo就安装好了。做一个简单的记录

本文使用CC BY-NC-SA 4.0协议进行许可