wordpress博客迁移到hexo(基于Github)

Wordpress博客迁移到Hexo(基于github)

前言

​ 最近迁移博客(原来博客地址),发现WP虽然社区环境不错,但是插件冲突太多,原因吗我先balabala

(首先呢需要mysql,php,环境,这个如果从其它角度来说你windows服务器(安全性远不如linux,当然你要用openbsd更好)还好,如果是linux,一般瞎打乱撞装个php7以上的版本,然后没有自带Mysqli这些库,后面问题一大堆,如果是下载源码直接编译,那更是上了天了,去年我一开始搞得时候,踩坑就踩了三四天。hexo的特性叫他可以很轻量级,你甚至可以在github上直接构建一个博客,这样你甚至不用去整一个服务器,然后域名直接绑定就OK),其实主要是我手头去年在狗爹上买了一个.me的域名,感觉这个做博客更好一些,但是我的ECS是阿里的,绑定不了外国域名,这就很头疼,就绑了国内的域名,这下也可以开开心心的用我的me了!

另一方面我需求好多都比较冗余,所以呢想法我的博客迁移到Hexo,从前就听朋友们说这个Hexo(不过最近听说hugo更猛)轻量并且很好用,最重要的是可以直接编辑Makedown,直接生成静态页面,很快,有没有,直接写Md,这个比wp装一堆乱七八糟的插件好用多了,所以我在这里来动手操作一下博客迁移。

1.导出wp的文件

这个简单,我们直接导出文件就行,在WP后台导出是一个xml文件。

QQ截图20190708202104

点击下载即可。

2.Hexo在github部署

2.1需要工具以及环境

​ 1.git 下载个git

​ 2.node.js环境

​ 3.windows或者linux系统都可以,我这里是linux系统,你可以在windows上操作,windows的图形界面很方便。

2.2配置github仓库

首先我们去github上弄一个仓库。

  • 1562592180523

这里我们先搞一个仓库,名称格式如下(这里注意网上给的图他们的生成第一次结束之后那个url有问题,不要看那个图,按照步骤执行即可)

  • 1562593417066

比如这种,是不正确的。

name.github.io

注意,名字一定要是你的用户名,这里我们会依赖我们的用户名建立一个分配给我们的githubpage

  • 1562593206741

然后仓库构建成功,点击右上角的setting我这里网页翻译了,就是设置,然后拉到最下面,有个构建github页面的,在这里我们添加一个主题,不然github页面没法发布。这个如果你看到ctk-wiki那些东西的话,你应该能体会其中的原理了。

  • 1562593183837

然后我们访问 blue-and-white.github.io 成功,构建完成,下一步我们要进行hexo的搭建了。

  • 1562593319882

这里我们要绑定下秘钥信息,在我们生成github仓库的时候,有两个链接,一个是ssh的,一个是https的,https的需要我们每次输入账号密码,ssh只需要验证秘钥即可。这个为我们以后提交代码方便。

  • 1562593799824

首先看看我们有没有这个key 进入发现是没有的。这个我们就需要生成一下了。

1
2
git config --global user.name "你的用户名"
git config --global user.email "邮箱地址"

这里绑定一下信息。

然后输入命令生成

  • 1562593972752
1
ssh-keygen -t rsa -C "邮箱"

输入第一行的命令,然后连续三下回车。

  • 1562594069278

然后我们发现出现了id_rsa.pub这个文件。

vim 打开复制里面的公钥内容。

  • 1562594207324

进入github主页,点击设置。

  • 1562594322411

然后添加key。

  • 1562594396715

会要求我们输入密码,然后输入密码,添加成功!

  • 1562594482021

然后我们输入ssh -T git@github,com 验证,这里出现登录成功!

2.3 配置hexo

仓库弄好了,接下来我们配置hexo

我在usr下面建立了一个文件夹blog 当然你也可以用一下语法进行

1
hexo init 指定目录(如果没有指定默认当前目录)
  • 1562594966704

然后等待一下。

  • 1562595683732

这里我们看到生成结束了,这里能用了,我们运行测试一下。

  • 1562595951039

然后运行hexo g 生成文件

如果报错执行

npm install hexo –save

即可

  • 1562596033217

我们会看到目录下多出一个public文件夹,这里放着生成的html代码。

你可以输入hexo s启动服务访问本地4000端口,然后可以看到页面。

这里我们可以更换一下主题

比如说我找到了一个主题,我首先把他下载下来。(这些主题可以我们在github上找,也可以去hexo官方选定下载)

1
git clone https://github.com/liuyib/hexo-theme-stun.git themes/stun

下载成功,vim打开_config.yml文件修改主题内容(这里我们要强调得是,有一些主题要我们加入一些插件啥的,这个我们注意阅读文档下载就行了)

  • 1562596874323

修改为主题名,保存退出。然后输入hexo g 重新生成。

然后准备上传到github仓库

  • 1562599229600

修改配置文件里面的deploy字段

然后保存退出

执行

hexo d

这里会提示有错误

  • 1562599273118

原因缺少一个插件,安装

1
npm install hexo-deployer-git --save

之后就可以执行了

  • 1562599384796

执行成功!

但是我发现并没有html文件,主页文件比如说Index.html 这里我去查阅了一下资料,这个可能是缺一些库导致的。

我们来尝试解决这个问题

  • 1562601012932

执行 npm ls –depth 0

发现真的缺了不少包,把这些包装上就好了

npm install 包名 –save

  • 1562601911694

OK,安装完成。

  • 1562601968382

哈哈哈,这次生成成功了。

  • 1562602026909

OK!成功构建!!!

这个主题没有wp那样方便,手动ppt那种一样,需要修改配置文件。我去看看官方文档了解一些配置文件balabala

迁移wordpress

​ 首先我们需要在wordpress后台导出xml文件

  • 1562678273905

然后下一步我们安装一个转换插件(这个插件转化出来从前的格式可能会变好多,切记修改一下)

1
2
npm install hexo-migrator-wordpress --save
hexo migrate wordpress <source> #source是xml文件路径

执行

  • 1562678352806

导出文章!

然后在/source/post目录下就会有我们导出来的文章,这些文章啥的虽然说都给我们添加了头信息,但是我们还是需要改一下因为原先的网站可能跟现在不一样。

这里我们来演示改其中一篇

比如说我有一篇,关于DVWA靶场的小测

1562687310557

我们在上面用如下格式输入

1
2
3
4
5
6
7
8
9
10
---
title:
categories:
- demo
- test(注意有空格,否则会报错)
date:
tags:
---
下面可以balbala正文了
我们在每个后面输入相应的内容,然后最后保存到source/_post/这个文件夹下面,我们要注意的是如果你想添加多个分类或者标签的时候你要按照上面图片的格式

1562688086690

如图,修改之后。

  • 1562688516545

然后提交/source/_post

然后在hexo根目录下执行hexo g 生成,然后hexo d提交到我们的github

  • 1562688575564

我们看到生成成功了!

这样我们可以吧所有的文章全部迁移。

PS:这里有一个坑,来说明一下,如果你的电脑在hexo g拖出来的文章的时候总是会被Killed掉,使我们电脑的内存不足,需要创建交换空间(WINdows叫虚拟内存)不够跑的,这时候我们执行一下命令即可。

1
2
3
4
5
free -m 
dd if=/dev/zero of=/swap bs=4096 count=1572864
mkswap /swap
swapon /swap
echo "LABEL=SWAP-sda /swap swap swap defaults 0 0" >> /etc/fstab

总结

​ 本次迁移博客呢,踩了不少坑也弄了不少经验,花了一天多的时间吧,也对hexo有了一个大体的了解,感觉还是蛮方便的,相对比wordpress,hexo简直十分轻量级,除此之外,hexo依赖node.js,对于php,mysql依赖的比较少,配置上手还是蛮方便的。