Hexo转移实录
引言: 前文提到的,腾讯云一直报入侵,我用的宝塔面板不太清楚是宝塔的问题还是WP的问题。
不过WordPress偶尔抽风早就让我很不爽,乘着这个机会干脆换掉吧
为什么要换博客系统?
前文提过了,可能是我WP不勤去升级还是php的漏洞,经常有些hacker往服务器tmp文件夹灌php病毒还是啥的。腾讯云的防护也不全面,在temp文件夹里还是存有部分未被删除的phpxxxx之类的文件
闲着没事打开注入的文件看看是啥东西,看完直接感谢白客不杀之恩!
经过确认还真是WP的锅。罢了本来就没事抽风,那就干脆换掉算了。
为什么选择Hexo?
大二那会同学跟我说有这么一个博客系统,可以利用github直接发布博客页,我不信就整了个看看,哟吼这玩意居然没有博客后台系统,那我发布blog岂不是很麻烦,不整了。
以前不知道静态网页的好,WP那种容易抽风的特性把我给整怕了,又刚好想起了Hexo, 那就干脆把他换了吧。博客后台?不需要的,又不是不会写md。
迁移过程
从WordPress迁移到Hexo还是挺方便的,利用WP的导出功能和Hexo的WP迁移工具就能快速的转移文章
但 只有文章,媒体文件是没有的
Hexo官方提供了wordpress文章的导入工具:迁移 | Hexo
首先,安装 hexo-migrator-wordpress
插件
1 |
|
在 WordPress 仪表盘中导出数据(“Tools” → “Export” → “WordPress”)(详情参考WP支持页面)
插件安装完成后,执行下列命令来迁移所有文章。source
可以是 WordPress 导出的文件路径或网址
1 |
|
官方也说了,导过来的文章格式可能有问题,这让我检查了一些时间的文章
部署Hexo
参考步骤:[只需5步!在轻量应用服务器部署Hexo博客-阿里云开发者社区 (aliyun.com)](https://developer.aliyun.com/article/815625#:~:text=在轻量应用服务器部署Hexo博客 1 步骤一:本地电脑部署 1、安装nodeJS 浏览器进入NodeJS 官网,安装 LTS(Long Term,步骤四:配置服务端Git 这一部分主要目的是本地电脑可以通过ssh方式连接到云服务器,然后就可以通过命令行方式将博客传到云服务器上。 1、安装Git … 5 步骤五:配置Hexo并部署发布 1、安装插件 )
这个教程挺好的,基本跟着他走没什么问题
本地机器安装hexo
先在电脑上装个nodejs:
然后利用这段代码在我的电脑上安装hexo
1 |
|
安装完利用下面这段代码判断hexo是否安装成功:
1 |
|
接下来,在电脑上找个位置存博客的内容,比如 D:\Code\Hexo, 然后利用以下命令初始化hexo博客:
1 |
|
一般这个时候,想要启动就用:
1 |
|
但是咱这里想用点皮肤,那就整点皮肤来安装,在hexo自动生成的目录中找到themes目录,这里就是存放主题的地方。咱这里强烈推荐fluid主题:配置指南 | Hexo Fluid 用户手册 (fluid-dev.com) 利用谷歌的material design设计整出来的博客主题好看,简洁。我以前的WP主题也是类谷歌material design设计,好用!强烈推荐!
经过一些主题方面的设置之后,就要用到上面的WP迁移小插件,将WP的文章迁移过来。
完成迁移的文章会以md的形式存在根目录的source文件夹中。到这一步我们再用:
1 |
|
让hexo自动编译静态网页文件并启动服务端,我们就可以通过:
1 |
|
去欣赏我们的网页了。而接下来的工作,则是将我们的网页部署到我们的服务器上
服务器配置
由于本服务器采用的是宝塔管理面板进行系统配置,所以有关nginx的安装以及网页位置的配置直接跳过
首先要做的,实在服务器上安装nodejs:
1 |
|
然后利用
1 |
|
确认nodejs是否正常安装
接下来安装的是git,利用git sever从本地PC部署静态文件到远端服务器中:
1 |
|
接下来向系统中配置git用户:
1 |
|
在此位置增加语句:
1 |
|
切换到git用户,然后在~目录下创建.ssh文件夹,命令如下:
1 |
|
创建公钥:
1 |
|
输入后都按回车即可!!!
此时在目录下就会有两个文件,分别是id_rsa和id_rsa.pub,其中id_rsa.pub就是公钥文件,复制一份:
1 |
|
这样目录下就会有一个authorized_keys文件,修改它的权限:
1 |
|
在本地电脑生成key并把key放到服务器可信任路径中的操作等其他的操作跟着教程走即可即可
利用这种方法把key放到服务器中,以后利用ssh远程连接服务器则不需要再输入密码直接登录
创建git仓库
创建一个 Git 的仓库,并且新建一个post-receive文件
1 |
|
到这一步,跟教程就有些不一样了,由于我们采用的是宝塔进行管理,所以网页存放地址与教程所给的有些出入:
这个路径要稍作修改才可使用,直接替换成宝塔提供的网页路径即可
给post-receive加权限
1 |
|
本地配置Hexo并部署发布静态网页
先在本地的博客根目录下安装插件,然后配置下远端的仓库地址
1 |
|
接下来修改_config.yml 内关于部署的内容
1 |
|
接下来就开始进行远程部署:
使用 hexo clean清楚本地缓存之后,使用
1 |
|
生成静态网页文件,并自动部署至远程服务器中
这里遇到了一个问题:需要给宝塔的网页路径设置一下权限,要不然git没法自己自动更新部署的文件,修改完权限之后就正常了
完成迁移
大体上博客的主要内容已经迁移过来了,不过正如前面提到的,WP迁移到Hexo只有文章,里面的媒体文件是没办法迁移过来的。当时的我也没有使用图床而是偷懒直接使用WP自带的媒体库,导致一些文章的图片没有导过来出现缺失。因此有些文章需要后期补充图片之后再恢复了。
未完成项目:
- live2D看板娘没有迁移过来
- 部分文章图片未上传至图库,还未发布
2023年6月11日