博客程序由Typecho迁移到WordPress的原因分析

在前面的博文中,我提到,由于插件的原因我将博客程序从Typecho换成Wordpress,今天我具体分析一下这件事。并讲述一下这几年使用其他博客程序的情况,分析一下为何庆幸没有用其他博客程序,为各位博友提供参考,也为我的折腾史画上句号。

(1)

Typecho程序的主题有很多,虽然不像Wordpress那样拥有海量的主题,但还是给博主们提供了可选择的空间。然而,Typecho的插件就不那么完善了。

2013年我的博客数据丢失时,只有唯一的一个数据库备份在我邮箱里,是Wordpress自动备份数据库的插件发送的。之前邮箱里有上百封数据库备份邮件,被我全删了,而最后一封邮件发过去以后,主机就崩了,因此只有这一个数据库备份。数据丢失让我长了记性,数据库一定要及时备份。不能依赖本地备份,因为几年前的移动硬盘损坏事件也让我长了记性。

Typecho有个插件叫Autobackup,用于数据库自动备份并发到邮箱。我下载到的是1.1.0版本,于2012年6月15日发布,从此以后再无更新。目前没有其他插件可以实现这个功能。

插件是这样实现功能的:在博客后台对该插件备份的数据表、备份间隔时间、发送邮件的方式和接收邮箱进行设置;插件包含一个config.xml文件,里面记载上次发送邮件的时间,当博主发表或更新一篇文章,或有访客在前台提交评论,则会触发插件计算此时的时间与上次发送邮件的时间之差是否超出了备份间隔时间,如果是,则插件会压缩数据库并发送到指定的邮箱。这样有个缺点,博主提交文章或访客提交评论时,需要等待10-15秒的时间。

这个插件在php7.x下是可以运行的,但会产生如下5种报错信息,每次插件被执行时都会被记录:

PHP Deprecated: Non-static method AutoBackup_Plugin::SendMail() should not be called statically in /usr/plugins/AutoBackup/Plugin.php on line 172

PHP Deprecated: Non-static method AutoBackup_Plugin::create_sql() should not be called statically in /usr/plugins/AutoBackup/Plugin.php on line 112

PHP Notice: Undefined variable: config in /usr/plugins/AutoBackup/Plugin.php on line 212

PHP Notice: Trying to get property 'pass' of non-object in /usr/plugins/AutoBackup/Plugin.php on line 222

PHP Notice: A non well formed numeric value encountered in /usr/plugins/AutoBackup/pclzip.lib.php on line 1972

尽管报错,但能用。如果将主机的php版本升级到8.x,则彻底无法运行。Typecho程序会直接在网站主页显示:

Error: Non-static method AutoBackup_Plugin::create_sql() cannot be called statically in Plugin.php:112

要想博客在php 8.x下能正常运行,就必需禁用该插件。我想向作者反馈这个问题,但是作者的博客早就打不开了。我通过web archive查看,发现该插件发布时作者使用的是静态博客,且他的博客在2015年以后就再也打不开了。

在迁移到Wordpress之前,我利用测试站进行了相关测试。Wordpress下的同类插件有很多,我测试了三个:UpdraftPlusWP-Db-BackupBackWPup。UpdraftPlus太过于复杂,不推荐使用;WP-Db-Backup依赖wp-cron定时任务进行数据库备份,但当前2.4版本不支持php 8.x;BackWPup可用来备份数据库、网站文件、已安装的插件列表、Wordpress XML输出等,可使用wp-cron备份,也可以访问特定的链接备份,我使用后者,将链接添加到免费的海外网站监控服务中,每24小时监控一次,相应的数据便定时发送到了我的邮箱中。

当主博客使用的程序迁移到Wordpress以后,我便直接利用BackWPup进行相应备份,心里踏实多了。

(2)

由于Wordpress相对Typecho来说臃肿很多,因此有必要进行一些优化。我使用的虚拟主机是Cloudlinux+Cpanel+litespeed,针对Wordpress有专门的优化,可安装Litespeed cache插件进行优化设置,加快wordpress网站的访问速度。目前,本博客的访问速度和之前使用Typecho时相差无几,而且后台速度也是很快的。

另外,在迁移至wordpress以后,smtp异步发送评论提醒邮件再也没有失败过。

(3)

2016年底博客重建时,考虑到Wordpress已经没有新鲜感,我让主机商客服帮我安装的zblog php。安装的当晚和第二天上午,zblog经常出问题,我的博客没办法正常运行。随后,我看到有博主用typecho,我便删掉zblog安装了typecho,一直用到2021年6月8日。在前面的博文中我提到,这几年,为折腾Typecho及其插件,我付出了很多精力,付出了很多心血。学到了很多东西,也付出了很多代价。这里就不讲述这些年的折腾史了。

这几年,除了zblog,我也测试过emlog、flatpress、movabletype等程序。emlog几乎已死,flatpress是文本数据库,movabletype不开源,因此我还是以zblog来说一下吧。

让我庆幸的是,幸亏我没有坚持用zblog。如果我用zblog,即便不考虑数据备份到邮箱的问题、不考虑其他任何意外情况,zblog的数据迁移问题也早晚会被我遇上。

将数据迁入zblog,可以用插件进行,相关的插件有好几个,网上也有大量的帖子介绍如何将wordpress迁移到zblog,尽管我测试失败了。然而,zblog迁移到wordpress的帖子极少。2009年之前的帖子说,可以使用zblog迁移到movabletype的插件,导出movabletype格式的文件,再利用movabletype导入wordpress的插件(wordpress后台可以一键安装)导入wordpress,但是,2009年之前的帖子中所说的插件在zblog应用中心已经搜索不到了,这个方法已经不能再使用。除了插件以外,只能对数据库进行操作,这需要非常专业的知识和能力,我看不懂。印象当中我看过一个博主说,他从zblog转移到wordpress时,zblog交流群里的人可以提供数据库转换操作,几十篇文章收费大概五百元,于是他放弃了所有的数据。

前几天安装zblog进行研究时发现,在2020年11月5日,开发者沉冰浮水发布一个插件可以将zblog数据导出为Movabletype 格式。这样便可以用Wordpress后台的Movabletype导入插件将数据导入wordpress。这可能是2020年11月以后唯一能将zblog数据转移到其他平台的插件。但经过我的测试,数据转移不完全,页面、评论、分类是无法被转移的。

zblog上至今还未发现数据库自动备份并发送到邮箱的插件。

所以,幸亏博客重建伊始安装zblog以后总出问题导致我换成了typecho,我非常庆幸一开始没有用zblog。

当然,这里有必要再提一个问题。我知道有些博主用VPS,上面安装的某些面板可以将数据库备份到需要你提供隐私信息的对象存储平台上。但我用的不是VPS,我的VPS被我用来建独立邮箱了,我也不考虑把主博客放在VPS上,原因在前面的博文中说过,这里不再赘述。

就这样吧。多思考、少折腾。

40 条回复

老头 2021年6月23日 回复

BackWPup 确实不错,不过目前正式版也不支持 PHP8(wp-cron 定时备份不工作)。那个 smtp 异步发送评论提醒邮件有没有啥技巧?使用过一段时间没有问题,后来出问题了怎么折腾都掉链子。

林海草原 2021年6月23日 回复

backwpup你是不是遇到下次发送时间1970年1月1日的问题了?所以我用的是网站监控访问特定链接的方法备份。异步发送这个,我看你在“沉舟侧畔“博客也回复了,如果smtp发送有问题,那就试试他说的那个插件,或者看看你的vps那怎么调整一下,至少虚拟主机是没问题的。

老头 2021年6月25日 回复

不是时间1970年1月1日问题,是插件不支持 PHP8,不过看到两周前更新了一个版本,看样子应该已经支持了。

林海草原 2021年6月26日 回复

其实这个新版本发布之前我在php8测试时,会出现下次发送时间1970年1月1日的问题,但访问链接备份的方式可以运行。这个新版本发布时,上面说对php8更好的支持,所以你现在试一下。但我不想用wp-cron来备份,减少系统负担,把这个交给网站监控来做。

老头 2021年7月6日

嗯,我升级到 3.9 版本,wp_cron 正常工作了。

林羽凡 2021年6月23日 回复

博客程序这东西,适合自己的是最好的,时间久了就不想折腾了,能就能用了,很多功能其实大部分时间都用不上。

林海草原 2021年6月24日 回复

是啊,保证能用,完全符合自己要求就行。不同的人要求不一样,选择自己合适的就好。

灰常记忆 2021年6月23日 回复

我之前也纠结要不要换程序 总的来说wp还是挺不错 最起码很多东西都找得到

林海草原 2021年6月24日 回复

不要换了,wp的资料多,遇到问题好解决,免得太过于折腾。我之前就太折腾了,太累了……

Sherry 2021年6月25日 回复

zblog是不是asp的?我很久以前也试过,是各种不满意才没有用。
typecho我也用过一段时间,但是最早的后台系统还是wp,那时候还是轻便的很。
一个系统用的人多了,才会吸引更多人开发者去搞出各种插件和主题,道理跟当下的各种流量明星和网红差不多吧,不过博客系统已经是个过时的东西了吧,会去开发的人也就越来越少。
曾经那么爱折腾的我也已经到了“例假式”更新的频率了,,,,不过,坚持就好!加油哦

林海草原 2021年6月26日 回复

zblog有php也有asp的,目前wp是最完善的了。我以前折腾也付出很多代价,现在只能是坚持思考……你也加油!

静水流深 2021年7月5日 回复

我也一路折腾过来,wp,typecho,最后停留在了hexo+github,除非github倒闭,否则这次不再丢了

林海草原 2021年7月7日 回复

评论的话如果博客不做了就全没了,当然评论的重要性和博文相比还是博文更重要。

泽泽 2021年7月8日 回复

2012年的插件居然这么坚挺,用到了现在,刚刚我下载了AutoBackup这个插件,php7的报错修复了,php8用不了的问题也搞定了,后期加个监控功能就可以正式发布了

林海草原 2021年7月9日 回复

感谢你对typecho的贡献!

无他 2021年11月15日 回复

你以前域名是不是qqdie

常瑞 2022年1月11日 回复

so.wp有什么好的???

发表回复