WordPress 迁移至 Hexo
记录一下本站从WordPress迁移至Hexo的过程
Hexo之前也接触过,不过只是看看,没摸
三个原因让我决定使用Hexo
原因
服务器出大问题
第一个原因是服务器的systemd
被我亿不小心覆盖了(当时提示是否覆盖,没仔细看直接回车了)
当时我就感觉,我的服务器不完整了,毕竟像开机启动的程序,都配置在里面
本来以为会开不了机,后来发现并不会
但我还是感觉,我的服务器被玷污了(草)
想试试纯静态化
第二个原因是偶然看到别的大佬的博客有篇文章,说的是把博客纯静态化的过程
Markdown YES!
第三个原因是Markdown
写作确实是爽,之前WordPress我还专门下了Markdown
编辑器插件
现在想想,还好之前用了Markdown
迁移
Hexo提供了迁移文档,可以用插件把WordPress导出的数据转成对应的文章
但实际非常拉胯,格式基本就没对过
于是我就想从数据库直接读出Markdown
,但后来发现数据库中的数据,换行等字符是被转义过的,也没法直接用
最后没辙,就只能展现我的手艺了:复制粘贴(老手艺人了)
从WordPress后台,打开每篇文章的编辑页面,一点点把自动迁移的文档内容给替换掉了
其实迁移插件还是有点用的,至少文章类型、标签、发布时间还是都有的,也算省了很多事吧
教程
在本地安装 Hexo
根据官网文档,你需要有nodejs >=10.13
和git
,可自行在Node.js官网和Git官网下载
1 | # 安装Hexo命令行工具 |
这样本地工作暂时告一段落
服务器网站配置
因为我是重装了系统,所以都需要从头来
开机第一步,宝塔 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 | deploy: |
权限问题
为git
用户设置权限
1 | # 修改权限配置文件的权限(默认是只读) |
找到 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 |
|
因为我装了宝塔,宝塔网站目录默认的用户是www
,如果直接checkout
会报错没权限,直接改成git
又会让网页会加载不出来
所以这里就先把它变成git
用户的,checkout
完后改回www
用户
使用
Hexo可真是太舒服了,在source/_posts
编辑文章
你可以用命令创建文章模板
1 | hexo new post "文章标题" |
编辑完后
1 | # 生成静态文件 |
检查到需要修改时可以不用停止服务器,直接改完刷新浏览器的网页就能生效
觉得没问题后,部署到你的服务器
1 | hexo d |
如果你改过配置或者生成的静态文件不对,你需要在生成前先清理一下
1 | hexo clean |
OK,以上就是本期文章
爷青结
用了两年多的WordPress退役了,👴的青春结束了