当我在一段时间后安装了另一个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
相关问题:
最合适的回答,由SO网友:chrisguitarguy 整理而成
WordPress将使用MySQLi 什么时候it can 或者除非你告诉它不要。不幸的是,如果WP没有看到mysqli_*
函数,它将假定您要使用mysql_*
.
那里is some logic 那会回到原处,老mysql_*
, 但是,从你的堆栈跟踪来看,情况并非如此。
你没有提到你在运行什么操作系统,但我猜php70-mysql
未安装程序包。Ubuntu和类似ondrej/php PPA 默认情况下不包括各种mysql驱动程序(pdo mysql和mysqli)。