编译PHP 7在WordPress中缺lessmysql扩展

我已经构build了PHP 7,其configuration适用于以前版本的PHP。 现在我的WordPress网站得到的消息:

您的PHP安装似乎缺lessWordPress所需的MySQL扩展。

其他网站使用mysqli做的工作。 我错过了什么?

我也包括所有.so文件与MySQL的名字:

extension=dba.so extension=mysql.so extension=mysqli.so extension=mysqlnd_mysql.so extension=mysqlnd_mysqli.so extension=mysqlnd.so extension=pdo.so extension=pdo_mysql.so extension=pdo_odbc.so extension=odbc.so 

正如其他地方已经提到的那样, ext/mysql函数已经被删除了。 我们已经谈了一段时间了 。

ext / mysql是为MySQL 3.23构建的,从那以后只增加了很少的内容,而且大部分时间保持与这个旧版本的兼容性,这使得代码难以维护。

如果你想把它们放回去,你可以使用ext / mysql PECL Library将它们添加回PHP 7

需要注意的是, WordPress 3.9或更高版本支持mysqli

在WordPress 3.9中,我们为WPDB增加了一个额外的层,当使用PHP 5.5或更高版本时,导致它切换到使用mysqli PHP库。

PHP 7已经完全删除了mysql_ *。

您需要使用PDO或mysqli。 WordPress的似乎不支持这一点。

mysql_*函数在PHP 7.0中被删除,将你的代码更新到mysqli或PDO

如果您正在处理用户输入,也请查看准备好的语句。 减少SQL注入的机会

mysqli连接字符串的一个例子:

 <?php $mysqli = new mysqli("localhost", "user", "password", "database"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; } ?> 

一个pdo连接字符串的例子:

 <?php $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); ?> 

注意:

该mysqli示例处理连接错误

检查Wordpress是否仍然使用PHP7中删除的Mysql扩展。

http://php.net/manual/en/migration70.removed-exts-sapis.php

Mysqli和PDO扩展被保留。 这是您的其他网站正在工作的原因。

这个问题是由PHP 7.1.0-dev造成的。

我使用相同的配置版本7.0.0构建了另一个,问题已解决。

这与WordPress没有任何关系,因为当没有找到MySQL时,它会自动尝试使用MySQLi。 至少在WP 4.4中。

在Ubuntu上,我通过运行修复了这个错误

 sudo apt-get install php-mysql 

然后重新启动我的服务器(球童,但你可能会使用Apache或Nginx的)。

资源