过时的PHP MySQL扩展是WordPress 4.6的要求吗?

时间:2016-09-26 作者:hakre

当我在一段时间后安装了另一个Wordpress时,我有点困惑。

我正在使用一个标准的Apache+PHP 7组合(即使在版本控制下),并且在查看了Wordpress的4.6.1(Github SVN镜像中的标记版本official Git-ified version) 安装程序在第二步向我打招呼时显示了一条明显的错误消息,即mysql扩展缺失,格式如下:

致命错误:未捕获错误:调用/wp includes/wp db中未定义的函数mysql\\u connect()。php:1561堆栈跟踪:0/wp admin/setup config。php(276):wpdb->db\\u connect()/wp包含/wp db。php在线1561`

我对当前的Wordpress版本仍然基于(过时的)php mysql扩展感到有点困惑。

也许我缺少一些配置设置,甚至原始的Ezsql类也能够处理不同的数据库后端ca。15年前,由于wpdb是从它派生出来的,可能还有一个剩余部分要使用php mysqli,这在今天更为常见(并且应该可以直接移植到)。但这可能是白费力气,所以我需要一些反馈,以便更好地了解情况。

只是从错误消息来看,似乎仍然需要mysql,但我希望这不是全部事实。这个Wordpress system requirements 不要共享关于所需PHP扩展的任何信息,从这些文档化的需求来看,我正在完美地匹配它们。

我一直在运行phpcompatinfo以了解更多信息,但结果参差不齐,看起来mysqli受支持(或者至少可以作为一个选项):

Extensions Analysis https://github.com/WordPress/WordPress

    Extension  Matches REF        EXT min/Max PHP min/Max     PHP all 
    Core               Core       7.0.2       7.0.2                   
    PDO                PDO        5.1.0       5.1.0                   
[...]
    memcache           memcache   0.2         4.3.3                   
 C  mysql              user       5.2.3       5.2.3                   
 C  mysqli             user       5.0.0       5.0.0                   
 C  mysqlnd            user                   4.0.0                   
 C  openssl            user       5.3.0       5.3.2                   
[...]
    Total [41]                                7.0.2 => 5.6.23         
相关问题:

2 个回复
最合适的回答,由SO网友:chrisguitarguy 整理而成

WordPress将使用MySQLi 什么时候it can 或者除非你告诉它不要。不幸的是,如果WP没有看到mysqli_* 函数,它将假定您要使用mysql_*.

那里is some logic 那会回到原处,老mysql_*, 但是,从你的堆栈跟踪来看,情况并非如此。

你没有提到你在运行什么操作系统,但我猜php70-mysql 未安装程序包。Ubuntu和类似ondrej/php PPA 默认情况下不包括各种mysql驱动程序(pdo mysql和mysqli)。

SO网友:Mark Kaplun

为了补充@chrisguitarguy所说的,mysql php 7.0不支持扩展(或者它是5.6?在这里不重要),支持mysqli扩大正如chris所说,wordpress试图检测您是否msqli 安装并使用它,如果检测失败,它将尝试使用mysql. 您得到的错误表明您没有mysqli已安装或已配置。