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扩展
我用的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文件里面:
/* 将默认的false修改为true */
define('WP_DEBUG', true);