如何修复错误:“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”
已发表: 2022-11-01“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”错误消息可能会让 WordPress 初学者和有经验的用户感到困惑。 虽然看起来您所要做的就是安装缺少的 WordPress MySQL 扩展,但服务器端的 PHP 安装和配置要复杂得多。 此外,有很多不同的数据库驱动程序可用于 PHP,每一个都有相同的用途。
在这个修复“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”错误的综合指南中,您将了解 WordPress 如何与其数据库通信以及如何确保您的 PHP 安装安装了正确的 MySQL 扩展.
WordPress 如何与其数据库通信?
您的 WordPress 网站是一个动态的、数据库驱动的 Web 应用程序。 它本质上意味着两件事:绝大多数网站内容都存储在 WordPress 数据库中,而 WordPress 绝对依赖于与其数据库进行通信的能力才能正常运行。 每次您在网站上加载任何页面时,WordPress 都会在后台执行一系列操作。
由于所有帖子、页面和其他关键信息都存储在数据库中,而不是服务器上的文件,我们会在静态网站上看到这些文件。 WordPress PHP 需要通过发送 SQL 查询来检索请求的内容,并将其与模板文件合并以创建将发送给网站访问者的 HTML 页面。 也就是说,WordPress 会解析你在浏览器中打开的地址,形成一组查询参数,然后用来查询数据库。
那么PHP在这个过程中的作用是什么? WordPress 安装或 WordPress 核心是一组 PHP 脚本,它们放在一起构建一个动态网站。 PHP 作为一种编程语言成为 WordPress 架构的核心,这意味着您的 PHP 安装必须正确配置以与 WordPress 数据库通信。 它的关键方面之一是安装和启用所需的 PHP 扩展。
用于 WordPress 的 PHP MySQL 扩展
PHP 使用特殊扩展或数据库驱动程序来确保 WordPress 可以使用 wp-config.php 文件中提供的凭据建立与其数据库的连接。 但是这个扩展到底是什么? 您可能已经看过它的不同版本:mysql、mysqli、mysqlnd、pdo_mysql、libmysql,甚至更多。 很容易混淆,所以让我们一劳永逸地解决它。
从 5.3 版本开始,PHP 使用 MySQL Native Driver 与数据库服务器进行通信。 MySQL Native Driver 也可以称为 mysqlnd,是 MySQL 分发的 MySQL Client Library (libmysql) 的替代品。 三个 MySQL 扩展——mysql、mysqli 和 pdo_mysql——被编译为使用 MySQL 原生驱动程序,并广泛用于基于 PHP 构建的网站。
PHP 在 5.5 版本中弃用了 mysql 扩展,并在 PHP 7+ 中删除了对它的支持,转而支持 mysqli。 与此决定保持一致,WordPress 使用 3.9 版本的 mysqli 扩展。 由于 WordPress 不支持 pdo_mysql,因此“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”错误消息中引用的数据库驱动程序是 mysqli PHP 扩展。
“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”错误是什么意思?
“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”错误意味着您的 WordPress 网站使用的 PHP 版本没有正确安装或配置 mysqli 扩展。 这导致 WordPress 无法与其数据库通信,进而导致在您的网站上看到这种 WordPress 数据库连接错误消息的变体。
WordPress 数据库连接错误
WordPress 可以出于多种原因显示数据库连接错误。 WordPress 选择显示的错误消息取决于它在连接尝试期间遇到问题的阶段。 重要的是要了解与其无法与 WordPress 数据库通信相关的两个主要错误之间的区别。
如果 wp-config.php 文件中的数据库信息不正确、您的数据库用户没有足够的权限、您的数据库已损坏或您的 MySQL/MariaDB 服务器被拒绝,则“建立数据库连接时出错”消息将出现在您的网站上连接。 在这种情况下,WordPress 可以使用 mysqli 扩展,但在稍后阶段会遇到某些问题。
如果您在您的网站上看到“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”错误消息,则您的 PHP 安装未安装或未加载 PHP mysqli 扩展。 数据库驱动程序确保 WordPress 可以使用其 wpdb() 全局类,这是建立数据库连接的第一步。
WordPress MySQL 扩展丢失错误背后的 3 个主要原因
当您首次安装 WordPress 或将 WordPress 网站移动到新的托管基础设施时,您需要确保所有服务均已正确配置。 它包括将接受 HTTP 请求的 Web 服务器、将控制 PHP 代码执行的 PHP 处理程序,以及将接受和处理数据库请求的 MySQL/MariaDB。
现代网络托管控制面板允许您同时在服务器上安装多个 PHP 版本。 传统的 PHP 安装方法并非如此,为了使用新版本的 PHP,您需要完全删除以前的 PHP。 您还可以从图形用户界面安装所有必需的 PHP 扩展,而无需从命令行安装。
如果您已注册 VPS 或专用主机,您可以选择要用于 WordPress 网站的 PHP 版本,甚至是 PHP 处理程序。 这种自由既简化了网站的运行过程,又使不熟悉 PHP 在服务器端工作方式的人变得更加复杂。
下面,我们将回顾导致 PHP 无法与您的 MySQL/MariaDB 服务器通信的常见情况。 以下是您网站上“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”错误消息背后的三个主要原因:
- 您的网站使用的 PHP 版本缺少 PHP mysqli 扩展。
- PHP mysqli 扩展配置不正确。
- 您正在使用带有 PHP 7+ 的过时版本的 WordPress。
原因 1:您网站使用的 PHP 版本中缺少 PHP mysqli 扩展
可能根本没有安装 mysqli 扩展,特别是如果您刚刚发布了新的 PHP 版本。 如果 WordPress 无法使用 mysqli 扩展,它将尝试在 PHP 版本低于 7.0 时使用旧的 mysql。 关键是为所选 PHP 版本安装和配置 MySQL Native Driver。
如何解决
从您的虚拟主机控制面板安装 MySQL 本机驱动程序或使用命令行界面启用 WordPress mysqli 扩展。 对于 PHP 8.1,如果您使用的是 cPanel,则该软件包将被称为 php81-php-mysqlnd 或 ea-php81-php-mysqlnd.x86_64。
在没有控制面板的 CentOS 服务器上,从命令行界面运行yum install php81-php-mysqlnd 。 对于 Ubuntu 服务器,您 apt-get 安装 mysqlnd。 系统将自动启用对 mysqli 和 pdo_mysql 的支持。
原因二:PHP mysqli 扩展配置不正确
一旦安装了所需的 PHP MySQL 原生驱动程序,mysqli 和 pdo_mysql 都应该启用并且可供 WordPress 使用。 要使用您正在使用的 PHP 版本加载扩展,需要在 PHP 全局配置目录中创建一个特殊的 PHP 文件。 如果由于某种原因无法为所选 PHP 版本加载 mysqli 扩展,WordPress 将显示“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”错误消息。
如何解决
验证 MySQL 本机驱动程序或 mysqlnd 是否已正确安装,并且 PHP 已为 mysqlnd 和 mysqli 添加了 .ini 文件。 在cPanel服务器上,您可以在/opt/cpanel/ea-php81/root/etc/php.d目录下找到30-mysqli.ini和20-mysqlnd.ini配置文件,其中PHP 8.1是使用的PHP版本您的 WordPress 网站。 文件必须包含以下行才能正确加载扩展。
原因 3:您使用的是带有 PHP 7+ 的过时版本的 WordPress
这不太可能,但您可能仍在使用带有较新 PHP 版本的非常过时的 WordPress 版本。 使用过时的软件版本不仅更容易遇到各种 WordPress 问题,而且还为黑客提供了几乎无限的可能性来访问您的网站并执行恶意操作。
如何解决
养成将您正在使用的所有软件更新到最新版本的习惯。 更新 WordPress、活动主题和所有插件。 始终使用最新的 PHP 版本,以避免因代码不兼容和未修补的安全漏洞引起的任何问题。
由于您无权访问 WordPress 管理仪表板,因此请使用 WordPress 命令行界面执行所有更新。 您可以使用以下命令:
- wp核心更新。 更新 WordPress 核心。
- wp 插件更新 <插件名称>。 更新某个插件或使用--all 标志一次更新所有插件。
- wp 主题更新 <活动主题名称>。 更新您的活动主题。
如果 WordPress 向您显示缺少的 MySQL 扩展错误消息,则表明您需要更加认真地对待您的 WordPress 网站。 采取积极主动的方法来管理它的所有方面,尤其是在安全方面。 iThemes Security Pro 和 BackupBuddy 是行业领先的 WordPress 安全和数据保护解决方案,可以让这个过程变得简单而轻松。
使用 iThemes Security Pro 就像在您的团队中拥有一位安全专家,将 24/7 全天候监控您的 WordPress 网站,让您专注于发展业务。 BackupBuddy 保护全球超过 100 万个 WordPress 网站,它会定期自动备份您的网站,将其副本存储在安全位置,以便在您需要时一键恢复。 这样,您可以轻松地从所有 WordPress 错误和恶意软件感染中恢复,但请记住——攻击预防总是比处理后果更好。
站点扫描功能检查您网站的关键区域并自动应用修复程序,以使您的网站免受过时的插件和主题的影响,从而使其面临巨大风险。 使用 iThemes 安全站点扫描,您可以显着减少攻击面并保护您的网站免受各种网络攻击。
iThemes 安全版本管理允许您为 WordPress 核心、插件和主题配置自动更新,以利用新功能并免受已知漏洞的影响。
使 WordPress 保持最新非常重要,可以节省大量时间来处理由过时软件引起的各种 WordPress 问题。
其他原因
就像任何其他 WordPress 问题一样,错误“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”可能会出于多种原因显示在您的网站上,这些原因超出了我们上面概述的范围。 但是,大多数情况下,它们与 PHP 处理程序错误配置或使用 CloudLinux 操作系统有关,该操作系统有自己的方式在服务器端配置 PHP。
CloudLinux PHP 选择器
使用 Cloudlinux,您可以利用 CageFS,这是一种用于完全用户隔离的强大解决方案,它可以防止跨帐户符号链接攻击并保护您的网站。 如果您使用的是 CageFS,则需要使用 CloudLinux PHP 选择器,这通常会给 cPanel 用户带来额外的复杂性,他们通常会从 MultiPHP 管理器管理服务器端 PHP。 请参阅 CloudLinux 指南以将 PHP 选择器与 cPanel 一起使用,或联系您的托管服务提供商寻求帮助。
如何修复“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”错误
要修复错误“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”,您需要确保您的 PHP 安装已正确安装和配置 MySQL 数据库驱动程序 (mysqlnd) 和 mysqli 扩展。 只有这样,您才能恢复 WordPress 和 WordPress 数据库之间的正常连接并让您的网站再次运行。
请按照以下步骤修复 WordPress MySQL 缺少扩展错误:
- 创建一个 PHP 信息页面以查看您的 PHP 配置。
- 验证 mysqli 扩展是否已正确安装和配置。
- 恢复 WordPress 连接到其数据库的能力并防止将来出现错误。
步骤 1. 创建 PHP 信息页面以查看您的 PHP 配置
检查 PHP 安装配置的最简单方法是创建 PHP 信息页面。 在 WordPress 网站的文档根目录中创建一个名为 phpinfo.php 的文件,并将以下代码插入其中:
<?php
phpinfo( );
?>
或者,如果您通过 SSH 登录到您的网站,请运行以下命令。 它将创建一个 phpinfo.php 文件并调整其权限。
echo "<?php phpinfo(); ?>" > phpinfo.php ; chown $(stat -c %U .). phpinfo.php
通过在地址栏中键入 yourwebsite.com/phpinfo.php 在浏览器中打开新创建的 phpinfo.php 页面。 将 yourwebsite.com 替换为您的 WordPress 网站的实际域名。 即使由于缺少 MySQL 扩展错误而没有加载内容,打开 PHP 信息页面也不会有任何问题。
您应该会看到一个类似于下面的页面,其中将包含您用于 WordPress 网站的 PHP 版本的所有配置。 在这种情况下,它是 PHP 8.1。 拥有 PHP 信息页面对于解决各种 WordPress 错误非常有用,包括 WordPress 中的“您的网站出现严重错误”消息。
在页面顶部,您将看到您的 WordPress 网站使用的 PHP 版本。 以下是您应该首先检查的 PHP 安装的一些最重要的方面:
- PHP 处理程序。 您的网站使用的 PHP 处理程序将显示为服务器 API。 在上面的截图中,它是 FPM/FastCGI。
- 加载的配置文件。 为正在使用的 PHP 版本加载的主配置文件。
- 解析了其他 .ini 文件。 此列表将包含所有其他加载的 PHP 配置文件,包括加载 MySQL 本机驱动程序 (20-mysqlnd.ini) 和 mysqli 扩展 (30-mysqli.ini) 的文件。
确保已解析的其他 .ini 文件列表包含所需的 20-mysqlnd.ini 和 30-mysqli.ini 文件,以确保正确加载所需的 PHP WordPress MySQL 扩展 mysqli 并可供您的网站使用。
步骤 2. 验证 mysqli 扩展是否已正确安装和配置
向下滚动 PHP 信息页面或使用浏览器中的搜索选项查看其中的 mysqli 和 mysqlnd 部分。 他们应该一个接一个。
请注意,mysqli 扩展被编译为使用 MySQL 本机驱动程序,因为客户端 API 库版本向我们显示了 mysqlnd。 PHP 扩展信息向我们展示了一些额外的细节,包括 MySQL/MariaDB 端口。
检查 PHP 信息文件的 mysqlnd 部分列出了哪些 API Extensions。 在上面的屏幕截图中,我们同时启用了 mysqli 和 pdo_mysql。
步骤 3. 恢复 WordPress 连接到其数据库的能力
PHP 信息页面将显示您用于 WordPress 网站的 PHP 版本是否安装并配置了 mysqli 扩展。 如果缺少它,请从您的虚拟主机控制面板提供的 PHP 管理界面或使用命令行界面安装它。
检查引用的 20-mysqlnd.ini 和 30-mysqli.ini 以查看它们是否正确加载了扩展。 如果您使用的是过时版本的 WordPress,请更新安装以及所有插件和主题。
我们在本指南中概述的步骤应该可以帮助您在绝大多数情况下恢复 WordPress 网站的功能。 但是,正如我们所提到的,可能存在其他问题,包括 PHP 处理程序配置错误,这可能会导致在您的网站上看到“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”错误消息。 如果不清楚导致问题的原因,最好联系您的网络托管支持团队以获得进一步的帮助。
包起来
WordPress MySQL 缺少扩展错误是 WordPress 与其数据库通信能力相关的问题之一。 这表明所需的 PHP mysqli 扩展丢失或配置不正确,导致 PHP 无法将 SQL 查询发送到您的 WordPress 数据库。 从 PHP 7.0 开始,旧的 mysql 扩展被删除,取而代之的是 mysqli,新的 WordPress MySQL 扩展被编译为使用 MySQL 原生驱动程序。
就像任何其他严重的 WordPress 错误一样,看到错误“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”意味着您需要检查您的 WordPress 配置并确保最佳安全实践到位。
对 WordPress 网站管理和安全采取积极主动的方法将帮助您防止大多数错误并显着减少攻击面。 配置监控、自动软件更新和定期备份以保护您的网站免受安全漏洞和网络攻击让 iThemes Security Pro 和 BackupBuddy 成为您的安全和数据恢复专家团队,确保您的网站永远不会脱机。
保护和保护 WordPress 的最佳 WordPress 安全插件
WordPress 目前为超过 40% 的网站提供支持,因此它已成为恶意黑客的轻松目标。 iThemes Security Pro 插件消除了 WordPress 安全性的猜测,使保护您的 WordPress 网站变得容易。 这就像拥有一个全职的安全专家,他们不断地为您监控和保护您的 WordPress 网站。
Kiki 拥有信息系统管理学士学位和两年多的 Linux 和 WordPress 经验。 她目前担任 Liquid Web 和 Nexcess 的安全专家。 在此之前,Kiki 是 Liquid Web Managed Hosting 支持团队的一员,在那里她帮助了数百名 WordPress 网站所有者并了解了他们经常遇到的技术问题。 她对写作的热情使她能够分享她的知识和经验来帮助人们。 除了科技,Kiki 还喜欢了解太空和收听真正的犯罪播客。