操作系统:Debian 书虫、WordPress:6.2,PHP:8.2
我今天将我的网络服务器从 Debian Bullseye 升级到了 Bookworm。除了所有 Wordpress 网站外,一切都正常。当我访问这样的网站(在我的服务器上)时,我首先收到以下错误消息:
Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
Please check that the mysqli PHP extension is installed and enabled.
我知道我的 PHP 已从 v7.4 升级到 v8.2,所以我认为安装 8.2 的 mysql 扩展可以解决问题:
apt-get install php8.2-mysql
一些 Wordpress 网站现在可以正常工作,但其他网站则出现此错误:
There has been a critical error on this website.
所以不知道接下来该去哪里...有人能给我一些指点吗?提前谢谢!
编辑:
我在一个非工作站点上激活了调试模式,调试日志显示以下内容:
[25-Jul-2023 14:07:21 UTC] PHP Fatal error: Uncaught TypeError:
call_user_func_array(): Argument #1 ($callback) must be a valid callback,
non-static method MerlicFilterCategoryLite::filter() cannot be called
statically in /usr/sites/asite/htdocs/wp-includes/class-wp-hook.php:308
Stack trace:
#0 /usr/sites/asite/htdocs/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters()
答案1
显然,该问题是由与 PHP 8.2 不兼容的插件引起的。
解决:
1)禁用所有插件
如果您无法在浏览器中打开 WP 仪表板,请使用 SSH 或 FTP 连接到您的服务器。接下来,转到您的wp-内容文件夹。重命名您的插件文件夹插件.old。现在您应该能够再次在浏览器中加载站点的仪表板。将插件.old文件夹返回插件。您的插件现在已全部禁用。
2)更新所有插件
在 WP 仪表板中,点击插件在左侧菜单中。更新任何需要更新的插件尚未激活。
3)逐个启用插件
所有插件更新后,逐个启用它们,并在启用每个插件后重新加载页面。如果在启用插件后收到错误消息,则说明该插件导致了问题。将该插件移出插件文件夹。以同样的方式检查所有插件是否存在问题。