![](/img/trans.png)
[英]Your PHP installation appears to be missing the MySQL extension which is required by WordPress
[英]Your PHP installation appears to be missing the MySQL extension which is required by WordPress on Ubuntu
我正在尝试创建一个临时 WordPress 站点,其中 PHP 和 WordPress 版本非常过时。 当我访问 localhost 时,出现以下错误:
Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
Ubuntu 版本:20.04.2 LTS
PHP 版本 CLI:PHP 7.2.34-24+ubuntu20.04.1+deb.sury.org+1
MySQL 版本:8.0.26-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
WordPress 版本:5.3.9
我需要 PHP 版本为 7.2.34,WordPress 版本为 5.3.9。
在我的info.php文件中,Loaded Configuration路径和extension_dir路径如下:
Loaded Configuration File /etc/php/7.2/apache2/php.ini
extension_dir /usr/lib/php/20170718
这些需要相同吗?
这是客户端 API 库版本。 我有点困惑为什么会抛出这个错误,这是否意味着安装了扩展? 我知道在较新的 MySQL 版本中它已被删除,但我不知道如何继续。
Client API library version mysqlnd 5.0.12-dev - 20150407 - $Id: 3591daad22de08524295e1bd073aceeff11e6579 $
我已经搜索了已发布的类似问题,但没有一个答案对这种情况有帮助。 如果我需要提供更多信息,请告诉我。 谢谢你。
编辑 1:phpInfo() 图像
编辑 2:关于我如何在命令行中找到 Ubuntu、PHP、MySQL 和 WordPress 的版本号的说明图像
我上面发布的 phpInfo() 图像来自 localhost/info.php
要检查安装了哪些扩展,您可以从命令行运行:
php -m
或者你可以运行这个 PHP 脚本:
<?php
var_dump(get_loaded_extensions());
在结果中查找“mysql”。 或者您可以从 CLI 中搜索它:
php -m | grep -i 'mysql'
如果您没有看到安装了任何 mysql 模块,则表明您以一种非常不寻常的方式安装了 PHP。 对于 Ubuntu,您可能需要像这样安装 mysql 模块:
# let APT decide which version
sudo apt install php-mysql
# or install a more specific version depending on which php you have:
sudo apt install php7.2-mysql
不清楚您的系统是否配置了 PHP 作为 apache 模块或通过 PHP-FPM 运行。 如果是后者,则需要重新启动 php-fpm 。 我会重新启动 apache 只是为了更好的衡量:
sudo systemctl restart apache2
此外,这看起来像是客户端的旧版本。 也许检查phpinfo()
并查看它有关 mysql 的信息。
编辑:一些附加信息。
我相信导致您错误的 wordpress 函数是wp_check_php_mysql_versions() 。
如您所见,该错误可能由多种情况引起:
if ( ! extension_loaded( 'mysql' ) && ! extension_loaded( 'mysqli' ) && ! extension_loaded( 'mysqlnd' )
// This runs before default constants are defined, so we can't assume WP_CONTENT_DIR is set yet.
&& ( defined( 'WP_CONTENT_DIR' ) && ! file_exists( WP_CONTENT_DIR . '/db.php' )
|| ! file_exists( ABSPATH . 'wp-content/db.php' ) )
) {
require_once ABSPATH . WPINC . '/functions.php';
wp_load_translations_early();
$args = array(
'exit' => false,
'code' => 'mysql_not_found',
);
wp_die(
__( 'Your PHP installation appears to be missing the MySQL extension which is required by WordPress.' ),
__( 'Requirements Not Met' ),
$args
);
exit( 1 );
}
尝试运行此 php 脚本,它会告诉您问题是缺少合适的扩展名还是缺少文件问题:
if (!extension_loaded('mysql')
&& !extension_loaded('mysqli')
&& !extension_loaded('mysqlnd')) {
die("You lack any suitable mysql extensions\n");
} else {
die("perhaps you are missing a file db.php?\n");
}
您必须确保 MySQL 的当前版本和 PHP 扩展的相应版本都已安装且可用。
PHP 必然成为一个模块化系统:各种内置功能由特定模块实现。 (并且只有在安装了这样的模块时才“内置”。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.