繁体   English   中英

您的 PHP 安装似乎缺少 Ubuntu 上的 WordPress 所需的 MySQL 扩展

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM