死马当活马医,医了半天,马竟然活了

昨天发帖说准备升级一个Wordpress站点所在的服务器(从Ubuntu 18.04升级到Ubuntu 22.04),为了避免升级时出问题导致数据丢失,O哥提前用mysqldump备份了博客数据库,当然也顺手备份了一下站点文件。

laptop-593673_960_720.jpg
(图源 :pixabay)

不出意外的话,我一路升级成功,WordPress也将会正常访问,结果呢——果然出了意外。

服务器升级倒是成功了,然而当我信心满满打开博客,发现竟然直接显示的WordPress源代码,我😵,这是咋回事?

按照O哥数十年的运维经验,这应该PHP服务没有生效,可能是配置问题,也可能是PHP在升级过程中没有被安装好。检查了半天,发现果然是后一种情况,服务器升级过程中PHP被卸载了,我擦。

使用如下语句重新安装PHP(嗯,不出意料,版本变高了):

sudo apt install php8.1

再次访问博客,发现倒是不显示源码了,可是也没正常工作,显示成这个样子:
cb5e55455636b1c07502aa2041cdeff.png

有具体错误提示就好,缺啥装啥呗:

sudo apt-get install php-mysql

装完之后再次信心满满地访问博客,结果依旧没有正常工作,提示信息如下:
467f519c8655da1e149d2bed43fb6a3.png

这就比较笼统了,一点有价值的信息都没有,不过好在我还可以看日志啊,看看错误日志,瞧瞧能不能找出端倪。

在日志中发现类似如下的提示信息:

PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /home/xxxxxxxx/www/wp-includes/script-loader.php on line 757

看来这是PHP版本升级的后遗症啦,去看看对应代码:
12e92d509bd77bfb03be197ad2e44bf.png

尝试去改一下代码,结果又遇到新错误:

PHP Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_gpc() in /home/xxxxxxx/www/wp-includes/load.php

这个也很简单get_magic_quotes_gpc()这个在新版PHP中被弃用了,本着哪里不对改哪里的思路,一顿魔改,虽然相信自己能把对应的不兼容错误都改掉,但是时间大概是遥遥无期。

最后实在是太累了,事已至此,先睡觉吧。

睡了几个小时候后,醒来继续思索这个问题,大概有几个方向:

  • 恢复VPS服务商的备份
  • 重装VPS为Ubuntu 18.04,然后恢复自己备份的数据库和网页
  • 着手解决兼容性问题
  • 彻底摆烂,坏了就坏了,不管了

前两项大概率可以恢复博客站点,但是也意为着我的升级服务器计划前功尽弃;最后一项摆烂,是万般无奈之后才要做的选择;想来想去,还是要挑战一下第三项,着手解决兼容问题。

不过从代码层面逐一DEBUG去解决,工程量太大,想想就很累,那么不妨换个思路,现在是旧版的wordpress程序与新版的PHP不兼容,那么何不考虑升级一下WordPress?

如果博客还可以访问,那么我们是可以在后台升级的。但是现在完全访问不了,那么就只能尝试暴力覆盖了。

从WordPress站点下载最新压缩包,解压,然后覆盖我站点上的博客目录,再信心满满地打开博客:
1997fbf78a3a96e1297022aada42a9b.png

擦,错误提示又变了,感觉一步一步,我把我的WordPress站点折腾到深渊了呢?

这里插播一句,WordPress代码用zip打包的,还需要安装zip/upzip来解压(尝试用gunzip解压没弄明白,人生如此艰难):

sudo apt install unzip

继续去看错误提示:

PHP Fatal error: Cannot declare class WP_Block_Styles_Registry, because the name is already in use in /home/xxxxxxx/www/wp-content/plugins/gutenberg/lib/class-wp-block-styles-registry.php on line 14

虽然不明白为啥会导致这个错误,但是看起来WP_Block_Styles_Registry被重复声明了,先尝试将gutenberg目录重新命名试试看吧。

讲真,这时O哥已经完全没有信心了,内心已经宣告了博客的死亡,做好躺平摆烂的准备了,但是姑且先死马当活马医吧!

结果你猜怎么着?博客竟然可以正常访问了!啥,这反转也太大了吧?幸福来得太突然,甚至感觉都不是惊喜而是惊吓了。

随便访问了博客的几个页面,发现博客真的是康复了呢,所以死马当活马医还是有效的,你看这不是医着医着,就把马医活了呢?

wordpress-589121_960_720.jpg
(图源 :pixabay)

自此总算圆满解决这个问题,既保证的博客站点可用,又成功将VPS系统更新到最新,整个过程简单粗暴,但是十分有效。就是太累了,唉。

博客登录什么的还有一些问题,这是因为我之前改过代码,不过没关系了,反正我也不登录了

相关链接

Sort:  

过程是艰辛的,还好结局是完美的😂😂,想必特别有成就感。😂😂

唉,主打一个瞎折腾

扁鹊下的毒都被O哥给医活了 真是赛华佗😄

就相信O哥一定能完美解决!😁😁😁太棒了

我的博客也是WordPress
好久好久没在上面码字了,都是发在HIVE了

O哥从此晋升为神医行列!!哈哈哈。。