切换初衷

当初做这个博客的时候,对WordPress熟悉一点,简单容易上手,另外关于WordPress的资料网上一搜也是一大把。但是随着时间的推移,WordPress越来越臃肿,改动的东西也越来越多,再加上很多插件作者也慢慢失去了更新的动力,所以WordPress感觉也不再是做博客的首选。

实际上我接触Typecho很早的,也用过一段时间,初期的话用的人很少,都是一些比较喜欢非常简洁的博客风格的朋友在用,不太适合需要多功能用途的博主。但是随着用的人越来越多,开发者也越多越多,网上资料也越多越多。最主要的是对于资源的耗用非常少。

另外再重要的原因就是这个博客上本身文章不多,需要改动的地方,比如之前用的WordPress上的代码高亮插件没办法移植到Typecho上来,除了这些以外,可以一眼看到头。

还有就是我之前对VPS啊之类的一些东西当初变的跟剁手党一样,现在老了折腾不动了。当初买了很多主机慢慢停掉,尽量迁移到一个新的主机上。这样尽量把一些资源消耗大的程序做一些精简。

准备工作

数据备份

把之前的服务器上的资料做一个备份,除了本身的网站文件以外,还有就是数据库。在备份网站文件的时候,建议把WordPress本身程序跟插件主题做一个备份,做博客期间上传的附件、图片重新打包成另外一个备份。因为本身程序的备份将来就不一定需要了,但是附件图片在Typecho上还是要继续存在的。

当然,我本身比较简单,因为我的已经用了CDN,所以可以不需要再整理图片及附件。另外,还有一些类似于favicon.ico这种文件也是要转移过来的。

切换DNS

因为我是连着服务器一起切换,域名不变,所以需要将DNS的记录切换过来。还需要在新的服务器上的LNMP中新建主机。切换的时候因为是SQL导入式切换,所以不需要新生成一个二级域名做临时中转站。

LNMP搭建

在切换过程中遇到了不少问题,很多都是需要修改Nginx的配置文件的事情,所以我现在就直接跟大家说正确答案,不需要再新建完主机再去修改这些配置文件了。

安装LNMP我就不多说了,按照军哥网站上一步一步的来就OK。不过我修改了一下军哥默认的LNMP的安装参数,让安装的时候自动多安装一些PHP模块,方便以后我网站使用,不需要的可以直接略过。

修改的的配置文件是安装根目录下的lnmp.conf文件

PHP_Modules_Options='--enable-exif --enable-mbstring --enable-fileinfo --enable-imap --enable-opcache'

因为我是多个网站一起转移过来,所以在LNMP新建主机之前,先创建个泛域名的SSL证书。安装方法我也就略过了,跟本文关系不大,有不知道如何处理的请翻到下面的参考文章。申请完泛域名证书以后,记录下相关地址,在后面新建同域的网站都可以使用了。

在新建主机的时候,相关选项一定需要注意,否则会造成各种奇奇怪怪404或是https错误等:

在选择rewrite规则的时候,请选择typecho;在选择是否开启pathinfo的时候选y。

安装Typecho

在网站目录中上传Typecho程序,Release截止现在最新的稳定版为 1.1 (17.10.30),我从Gitlab上下载的1.2 (18.10.23)开发版。如无特殊必要,建议还是使用稳定版。

在安装Typecho的时候,请注意同时把WordPress的数据库备份SQL文件也导入并新建一个数据库。

上传完毕后,解压到网站根目录,按照新网站的模式进行安装。安装的时候请注意:

MySQL的数据库方式请选择utf8mb4。

在安装时,使用https方式访问安装程序,Typecho在http跟https互通共融方面还不是很完善。另外就是建议在Nginx配置上将http强制转成https访问。

转换数据库

请下载安装转换插件 wordpress-to-typecho(点此直接下载),然后直接上传并解压到 /usr/plugins/文件夹下。

进入后台启用该插件,通过设置选项将原来导入的WordPress的数据库的相关信息填入进去。

插件管理

设置插件

最后就可以在控制台中选择导入把原来WordPress的文章、分类、标签、地址等信息一起导入进来了。

还原附件

这个步骤我没有涉及到,参考文章中给出了相关命令,仅供参加参考:

update typecho_contents set text=replace(text,'wp-content/uploads','usr/uploads')

修正博客

网站的站点名称、站点描述、关键词等等这个工具没有导入进来,需要在设置的基本功能中更改,另外还有就是永久链接这个选项卡,建议修过成跟原来WordPress相同的方式,地址重新也就是rewrite功能可以打开,提示没有检测到也没关系,勾上强行打开就可以了。

另外就是因为WordPress的一些插件的原因,可能会造成文章转移到Typecho中就造成格式错乱,那可能就是要手工去进行修正了。

例如我之前在WordPress中的高亮插件是通过code lang="bash"方式来体现高亮的,中间一些代码可能会跟MARKDOWN冲突,造成格式混乱。

插件主题

WordPress的最强大之处就在于拥有了大量的插件跟主题。在Typecho上就比较少了,常见的也就那么多。不过我购买的这个主题已经附带了一个配套插件,基本上解决了大部分使用上需要的插件功能了。例如内置编辑器、归档、留言板、代码高亮等等。

如果不想使用我这个主题的话就只能一个一个去找了。

错误问题

在运行Typecho的时候,经常会遇到一些奇奇怪怪的数据库方面的问题,经常会出现各种500错误之类的。

首先就是建议大家在安装的时候就把数据库的编码修改成utf8mb4,如果出现500 Database Query Error错误的时候,80%以上都是由于一些表的编码冲突之类造成的,比如typecho_links这个表就是由于友链插件自动生成的表,默认就是uft8格式的,需要执行以下命令

alter table typecho_links convert to character set utf8mb4 collate utf8mb4_unicode_ci;

另外如果还不知道什么错误,就可以打开typecho的调试模式。在index.php中加入以下代码:

define('__TYPECHO_DEBUG__',true);

我就是发现我的也是一个备份插件引起的访问都是正确的,不能新建文章,只能新建独立页面的错误。禁用掉就好了。

参考文章

最后修改:2020 年 12 月 06 日 04 : 28 PM