死马当活马医,医了半天,马竟然活了
昨天发帖说准备升级一个Wordpress站点所在的服务器(从Ubuntu 18.04升级到Ubuntu 22.04),为了避免升级时出问题导致数据丢失,O哥提前用mysqldump备份了博客数据库,当然也顺手备份了一下站点文件。
(图源 :pixabay)
不出意外的话,我一路升级成功,WordPress也将会正常访问,结果呢——果然出了意外。
服务器升级倒是成功了,然而当我信心满满打开博客,发现竟然直接显示的WordPress源代码,我😵,这是咋回事?
按照O哥数十年的运维经验,这应该PHP服务没有生效,可能是配置问题,也可能是PHP在升级过程中没有被安装好。检查了半天,发现果然是后一种情况,服务器升级过程中PHP被卸载了,我擦。
使用如下语句重新安装PHP(嗯,不出意料,版本变高了):
sudo apt install php8.1
再次访问博客,发现倒是不显示源码了,可是也没正常工作,显示成这个样子:
有具体错误提示就好,缺啥装啥呗:
sudo apt-get install php-mysql
装完之后再次信心满满地访问博客,结果依旧没有正常工作,提示信息如下:
这就比较笼统了,一点有价值的信息都没有,不过好在我还可以看日志啊,看看错误日志,瞧瞧能不能找出端倪。
在日志中发现类似如下的提示信息:
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版本升级的后遗症啦,去看看对应代码:
尝试去改一下代码,结果又遇到新错误:
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站点下载最新压缩包,解压,然后覆盖我站点上的博客目录,再信心满满地打开博客:
擦,错误提示又变了,感觉一步一步,我把我的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哥已经完全没有信心了,内心已经宣告了博客的死亡,做好躺平摆烂的准备了,但是姑且先死马当活马医吧!
结果你猜怎么着?博客竟然可以正常访问了!啥,这反转也太大了吧?幸福来得太突然,甚至感觉都不是惊喜而是惊吓了。
随便访问了博客的几个页面,发现博客真的是康复了呢,所以死马当活马医还是有效的,你看这不是医着医着,就把马医活了呢?
(图源 :pixabay)
自此总算圆满解决这个问题,既保证的博客站点可用,又成功将VPS系统更新到最新,整个过程简单粗暴,但是十分有效。就是太累了,唉。
(博客登录什么的还有一些问题,这是因为我之前改过代码,不过没关系了,反正我也不登录了)
相关链接
Leave 死马当活马医,医了半天,马竟然活了 to:
Read more #cn posts
Best Posts From oflyhigh
We have not curated any of oflyhigh's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.