编译安装PHP7的MySQL扩展mysql.so

转自:http://www.maixj.net/wz/php7-mysql-so-14716

PHP7已经彻底废弃了传统的mysql_connect()函数,源码安装包里,也不再提供传统mysql函数库的支持(PHP推荐使用mysqli或者pdo_mysql)。这样带来的问题是,运行老的PHP程序,比如WordPress,就会出现数据库连接失败的情况,表现出来的特征就是这个让人抓狂的错误:Fatal error: Uncaught Error: Call to undefined function mysql_connect()。这时,我们要么选择回退到PHP5.6,或者选择安装PHP7的mysql扩展。

 

PHP7的源码包里面没有mysql的代码,需要另外下载,下载地址:

http://git.php.net/?p=pecl/database/mysql.git;a=summary

编译安装PHP7的MySQL扩展mysql.so

下载PHP7的传统mysql扩展

可以使用WinSCP将下载包传到Linux系统。随便哪个目录都可以,然后运行下面的命令:

我用的ubuntu,先要安装autoconf这个工具:apt install autoconf

然后:

tar zxf mysql-230a828.tar.gz

cd mysql-230a828

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=/usr/local/mysql

make && make install

然后修改php.ini

添加extension=mysql.so

DONE!

 

此文写得相对简略,可能缺少一些必要的说明,有需要的同学可以参考:编译安装PHP7的扩展pdo_mysql.so

 

补充一个经验:

wordpress程序默认关闭了php的debug输出,这时如果出现连接数据库错误,屏幕一篇空白,什么都没有,我们需要打开php的debug开关来查看具体是什么错误,具体在wp-config.php文件里面:

备注:不同的版本mysql.so,pdo_mysql.so文件名不相同。