记录一下本站从WordPress迁移至Hexo的过程

Hexo之前也接触过,不过只是看看,没摸

三个原因让我决定使用Hexo

原因

服务器出大问题

第一个原因是服务器的systemd被我亿不小心覆盖了(当时提示是否覆盖,没仔细看直接回车了)

当时我就感觉,我的服务器不完整了,毕竟像开机启动的程序,都配置在里面

本来以为会开不了机,后来发现并不会

但我还是感觉,我的服务器被玷污了(草)

想试试纯静态化

第二个原因是偶然看到别的大佬的博客有篇文章,说的是把博客纯静态化的过程

Markdown YES!

第三个原因是Markdown写作确实是爽,之前WordPress我还专门下了Markdown编辑器插件

现在想想,还好之前用了Markdown

迁移

Hexo提供了迁移文档,可以用插件把WordPress导出的数据转成对应的文章

但实际非常拉胯,格式基本就没对过

于是我就想从数据库直接读出Markdown,但后来发现数据库中的数据,换行等字符是被转义过的,也没法直接用

最后没辙,就只能展现我的手艺了:复制粘贴(老手艺人了)

从WordPress后台,打开每篇文章的编辑页面,一点点把自动迁移的文档内容给替换掉了

其实迁移插件还是有点用的,至少文章类型、标签、发布时间还是都有的,也算省了很多事吧

教程

在本地安装 Hexo

根据官网文档,你需要有nodejs >=10.13git,可自行在Node.js官网Git官网下载

1
2
3
4
5
6
7
8
9
10
# 安装Hexo命令行工具
npm install hexo-cli -g
# 在合适的目录创建博客
hexo init blog
# 进入博客目录
cd blog
# 安装依赖 如果安装失败或极慢 可以考虑使用 cnpm
npm install
# 启动服务器
hexo server # 简写 hexo s

这样本地工作暂时告一段落

服务器网站配置

因为我是重装了系统,所以都需要从头来

开机第一步,宝塔 install

根据宝塔文档,我是CentOS系统,使用以下组合命令下载wget,使用wget下载宝塔安装脚本,安装宝塔

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

宝塔安装好后进入后台,自行配置一下

然后服务器建议用Nginx,其他看你需求

安装好后添加静态网站

服务器的网站部分就到这了

如果你不想用宝塔这种管理软件,你也可以自行安装Nginx,只要网站运行起来就OK

自动部署服务器配置

自动部署是将你本地的Hexo生成的静态页面自动上传到服务器上

原理是用了git hook,当你push的时候,会在服务器执行命令让网站目录强制checkout最新的代码

首先我们需要在服务器上创建一个git仓库,这个步骤你可以参考《搭建自己的Git服务器》

创建好仓库后,不必克隆到本地,而是使用一个插件

自动部署本地配置

安装hexo-deployer-git插件,在本地的博客目录下执行

1
npm install hexo-deployer-git --save

然后在_config.yml添加配置,将你的仓库地址改成对应的

1
2
3
4
deploy:
type: git
repo: git@IP:/home/git/blog.git # 仓库地址
branch: master

权限问题

参考:《将Hexo部署到自己的服务器上》

git用户设置权限

1
2
3
4
5
6
# 修改权限配置文件的权限(默认是只读)
chmod 740 /etc/sudoers
# 编辑
vim /etc/sudoers
# 修改完可以再把权限改回来
chmod 400 /etc/sudoers

找到 root ALL=(ALL) ALL,在下面新加一条

1
git	ALL=(ALL)	NOPASSWD: ALL

这里我加了一个NOPASSWD,是为了执行sudo时无需输入密码,后面会用到

Git Hook

在仓库地址下hooks目录中创建一个文件

1
vim /home/git/blog.git/hooks/post-receive

添加以下内容,--work-tree是网站根目录,--git-dir是仓库目录

1
2
3
4
#!/bin/sh
sudo chown -R git:git /www/wwwroot/blog
sudo git --work-tree=/www/wwwroot/blog --git-dir=/home/git/blog.git checkout -f
sudo chown -R www:www /www/wwwroot/blog

因为我装了宝塔,宝塔网站目录默认的用户是www,如果直接checkout会报错没权限,直接改成git又会让网页会加载不出来

所以这里就先把它变成git用户的,checkout完后改回www用户

使用

Hexo可真是太舒服了,在source/_posts编辑文章

你可以用命令创建文章模板

1
hexo new post "文章标题"

编辑完后

1
2
3
4
# 生成静态文件
hexo g
# 可以先在本地开启服务器,检查文章
hexo s

检查到需要修改时可以不用停止服务器,直接改完刷新浏览器的网页就能生效

觉得没问题后,部署到你的服务器

1
hexo d

如果你改过配置或者生成的静态文件不对,你需要在生成前先清理一下

1
hexo clean

OK,以上就是本期文章

爷青结

用了两年多的WordPress退役了,👴的青春结束了