又一次博客折腾的记录-灵魂迁徙

由于博客从2013年建立以来,各种倒腾使得代码和数据库比较凌乱,响应速度慢慢地变得很慢。于是琢磨怎么样把原来的数据整合到新的WordPress(WP)程序中,过程很坎坷,也遇到了很多问题,有必要整理记录下来。

首先在测试站做一系列测试,看怎么样可以完整地转移数据。

  1. 将一个全新WordPress程序和数据库分别复制/导入进test site(复制原来的config.php文件)
  2. 修改test site database的域名信息
  3. All-in-One WP Migration搬迁测试,有100M的限制,可以高级定制选择不导出主题或者插件,但是数据库会全部复制
  4. wordpress工具导出文章评论媒体方式导入(限制100M),优点是所有链接包括媒体链接会自动换为新url,看具体需求,不一定用到
  5. 先不安装插件的情况下导入,媒体导入不成功
  6. 重来,安装主题和关键插件
  7. 取消置顶文章,禁用wpdiscuz插件
  8. 重新开始,导入新数据库删除link和option之外的内容
  9. 安装测试 OSS upload 和 WPOSS
  10. 从数据库中导出导入post,comment等表之后,再安装wpdiscuz,却不能启动→因为数据库option

问题:

  • OSS upload上传图片之后,把它禁用,媒体里该图片的链接会自动变回网站目录/uploads的,可即便在相应路径把该图片上传,后台媒体页也不显示图片/缩略图……该图片的媒体页面也只是显示链接,如果点此链接,则显示图片,证明图片是存在的,路径也没问题。
  • WPOSS上传图片后,也把它禁用,然后这个时候媒体里的链接也会自动变回wp本地,把图片上传到网站目录/uploads对应文件夹,后台媒体页正常显示……
  • 和OSS有关的插件全部禁止,上传一个图片,则图片上传到网站目录/uploads,然后启用OSS upload,在aliyun oss手动上传刚才的图片,路径正确,博客媒体页面不显示;换WPOSS,相同操作,图片可以显示。
  • 另外,在测试站把两个插件都安装之后,此后再上传的图片,上面的问题不存在了……可是问题是之前的图片还是那样……
  • 文章插入的图片基本只是一个img链接的话,和显示一个图片链接一样正常显示。而后台媒体库的缩略图,媒体页面,文章中的相册,封面图片不能显示出来。
  1. 把原网站的主题代码和config代码copy到测试站,测试媒体/图床问题。

……

后续的测试整理出来的话可能有一百条吧,全都失败赶时间去做各种尝试也就没再记录……

分享几个也许有用的内容,虽然都没有对本次遇到的问题没什么帮助,不过有朋友遇到类似问题也许可以参考着去尝试:

  • 将WordPress图片附件从图床(aliyun oss)搬回本地
  • 阿里云图床迁回本地wordpress插件?WordPress 将图片从图床搬回本地 show了两个插件Search & Replace, Add From Server ( aliyun oss的软件把媒体数据下载到本地 oss-browser.exe 后zip形式打包上传到wp网站目录,使用Add From Server确实可以把图片导入到本地,然而图片id和以前并不能对应,所以后台媒体页和相册等依然不能显示,另外,导入图片的过程中如果遇到严重问题,后续进程不会继续。如果能正常工作的话,把图片上传到wp目录,再用这种方式导入倒是不错的选择,不过该插件不支持导入文件夹,所以得按文件夹分批操作,如果是按照年月组织媒体上传形式,操作的文件夹可能会比较多,另外一次导入太多也可能是造成提示wp出错的原因之一,记得好像有一个帖子里提示不要一次导入太多图片。那么,图片比较多的话,也还是比较纠结……Search & Replace可以替换url链接,sql操作也可以,不过好像没有它操作的彻底,而且预览模式比较贴心,此外,修改的内容可以选择导出sql文件或者直接修改sql文件。)

既然图片问题怎么都存在的话,不动数据库的情况使用wp导入器也许是比较好的选择,毕竟很久以前随便折腾站点,改代码、装插件,早不记得改动了些什么,也算是有一个契机整顿吧。于是正式做内容迁移。

  1. 重装一个WordPress到测试站点
  2. 主站数据用后台自带的服务导出xml文件,需安装插件
  3. 测试站建立多个账户,尽量不操作数据库,所以没有选择导入sql的方式,而是手动建立
  4. 测试站点后台同样安装插件后导入xml文件
  5. 安装插件,这次严格控制插件和数量,注意修改媒体文件路径
  • 图片延迟加载,社交share,随机推荐,Widget Logic,垃圾评论保护(WordPress Zero Spam),中文汉字转换,classic editor,限制登陆可能之后会取消掉。
  • 缓存插件,点赞、打赏、海报,SEO优化……不需要……
  • 关于谷歌字体,functions.php添加了代码(用微信打开的速度貌似有一点点改善),没有安装Disable Google Fonts插件,暂时还没有朋友反映有问题。
  • 图片放大用highslide.js,替换原来的simple lightbox插件的功能。
  • wpdiscuz终于也不用了,向速度妥协一定要彻底……所以评论后内容不可修改,评论后回复的邮件通知通过functions.php的内容完成。
  1. 建立子主题
  2. 修改代码,主要包括:首页摘要字数,禁用自动生成其他尺寸图片,关闭文章修订,加入评论邮件通知功能
  1. 修改子主题css

css代码中padding:1em 0 ; 上右下左什么顺序来着?……

  1. 测试站代码和数据库移入主站,并修改其他设置,包括媒体路径
  2. 由于媒体中为空白,封面图片和相册尝试多种途径不能正常显示,重新添加吧

目前rebuild之后的站点数据库仅2M,而之前已经达到了12M,单posts表就有4M多。还需要考虑以后怎么用aliyun oss,一种方式是改用WPOSS插件,需要在测试站点继续测试开启插件之后的速度、验证关闭插件之后确实不会有之前的问题,因为OSS upload挺拖速度的;另一种是url直接插入图片的内容直接上传到aliyun oss通过img url显示进文章,而封面和相册等图片上传到wp本地。

好吧,使用WPOSS上传会出现错误:图像后期处理失败,可能是服务器忙或没有足够的资源。请尝试上传较小的文件。

后来发现不仅是使用OSS的插件一张图片都不能上传,而wp自由媒体服务上传图片也会遇到这样的问题。测试图片的尺寸都已经调整到了600-900宽度像素之间,而且是横向图片尺寸绝对没有超,wp上传失败的,第二次一般可以成功,不然第三次也能成功。但是如果需要上传的图片多,每次得重新找上传失败的图片再次上传,也比较麻烦。

同样的代码和数据库复制到其他域名的目录和数据库database中,上传则一点儿问题都没有,而该域名下即便是建立一个全新的wp站点,也会有这样的错误提示。玄学!

另外,系统语言为中文,上传图片会出现问题。而如果系统语言为英文,上传上百张图片做测试没有遇到问题。乖乖……So you can’t read Chinese? the most beautiful and powerful language on this planet!?

P.S.中文条件下4张图片以上容易遇到问题,后来functions.php中添加代码之后出问题概率减小,回头测试英文条件下可否完全删掉该代码。

今天测试中文条件下上传也没问题,而和昨天相比,什么改动也没有做……目前数据恢复到了昨天的内容,这样也不需要删除测试的那些图片了……

就这样,遇到挺多诡异的问题,浪费了很多的时间在其中,也没能解决,甚至不明白为什么……之后打算手动上传到aliyun oss,然后通过url的方式插入图片,就像用那些其他的公共图床那样,只不过图片得一张一张插入。另外,之前的主题其实一直还是比较喜欢的,根据季节更换站点颜色的事情也只做了一半……但是为了保证速度第一,还是选用了和原来主题最接近的wp官方主题,毕竟一些非官方的主题执行效率不如官方主题。暂时,对这个主题还是不太习惯,不过多看看应该会很快习惯的~另外,有一些文章的封面和页面中的图片(使用了相册Gallery),不能正常显示,之后慢慢修正,已经整理了一部分内容。

邮件订阅功能暂时还在考虑中,原来的插件太占用数据库空间,所以邮件订阅的朋友请暂时手动查看吧。

作者: 椰林物语

博士,摩托车手。发布内容为:生活、站点、其他。

《又一次博客折腾的记录-灵魂迁徙》有29个想法

    1. 之前响应慢,后来发现可能主要是oss upload插件拖慢的。重新折腾之后,不考虑这个插件也还是能快一点点。😄

    1. 也尝试过了,用sql命令直接改数据库也试过……问题不是数据库里的记录链接是错的,而是记录的时候少了什么参数……
      不过现在的问题就更奇怪了,压根不能上传,建立一个全新的也不行,所以说玄学。

        1. 额,你可能没仔细看内容。
          文章里的单张图片,即便不做任何的更改,图床链接有效,就是可以显示的。后台媒体页、文章插入的gallery以及封面图片不能显示。但是编辑的时候可以看到,所以路径绝对没有问题……
          都有写。

  1. 教你一招,正文里要链接自己的时候不写域名,这样以后换域名的时候就什么都不用改。
    比如这篇,href里只放“/blog-rebuild-log-on-202005/”。

  2. 后台媒体页不显示可能是无解的,就算有,我应该是不知道的。我在多次迁移站点时候也碰到过,只能重新上传一遍。迁移到aliyun的那次,也不显示了……我的策略就是忽视它,反正没什么人会去看媒体页面的……

    上传出现错误可能是ali oss设置的防火墙的问题。我也碰到过,反正我都压缩到1000px的,出现几率并不很高。

    手动上传ali oss人肉插入url目测太痛苦了吧。而且不能用手机wp app即时插图更新文章,目测一点乐趣也没有了。

    1. 咨询WPOSS,回复是“防盗链需要放行”,可是之前也没有防盗链的设置,后来设置了没什么变化……之后对方也没回复了,不知道是不是与我没说“谢谢回复”有关系……一看到回复,忘了。
      后台媒体页不显示我猜想是和数据库里的什么字段有关系,造成它无法关联读取,但是点击编辑媒体又可以看到图片,那路径肯定是对的……主要是插入的相册也一同不显示了……它在文章里没有链接,就是中括号里面图片对应的id……
      我也是想着那就重新上传一遍吧,结果呢,都已经重新在主站布置好了,安装插件直接无法上传……而且不用插件上传本地也有一定概率的失败,很奇怪……挺折腾的……重新安装一个wp,只安装oss upload或者wposs,还是无法上传……aliyun oss那边什么设置都没改过。这逼得以后只能手动上传了。
      图片rename的时候,我会习惯让后面带上数字编号。classic editor通过url里插入一张图片,然后复制,修改数字就可以不用一张张插入,图片多的情况下应该比较helpful,少的情况下一张张也问题不大。
      手机上我也没装wp app,ios系统版本没升级,不给装……反正发文章都是用电脑先在word里编辑文字,发文的时候直接复制进去,然后再整图片。

      1. 这回复过了一年才看见。
        防盗链不是要设置的吗,比如白名单之类。

        对象存储/Bucket 列表/feliwuyan/权限管理
        读写权限 公共读

        防盗链
        Referer https://*.feiliwuyan.com
        空 Referer 允许

        跨域设置
        编辑跨域规则
        来源允许 https://*.feiliwuyan.com
        允许methods 都勾上
        允许headers *

        等等

  3. 看到我头都晕了……

    想起我以前也多次经历这样的过程,从msn space->wordpress.com->自建站->A服务器->B服务器->C服务器->D服务器->返回C服务器……

    现在折腾不动了……

  4. 好详细,加点插图就是一篇WP教程了。我比较喜欢Emlog,娇小可爱,哈哈!

        1. 嗯,现在速度很快,基本都是秒开,w老师也帮我留意留意~昨天发现用微信打开页面加载慢,估计是因为google字体,因为微信默认用自己的服务器加载。
          加了限制字体的代码之后貌似有一点改善,但是还是不如用浏览器打开快。

          1. 你要感谢我,要不是我上个月给你提了很多意见,你还想不到。
            现在速度杠杠的,而且界面也清新了很多。

发表评论

邮箱地址不会被公开。 必填项已用*标注