因为要debug一些比较老的程序,而 PHP7.1 已经删除了 mysql 模块,使用 mysqli 模块做了替代,而让 Nginx 同时支持 php5 和 php7 又比较麻烦,所以这里尝试让 PHP7.1 支持一下 mysql 模块。好在 perl 中,mysql 这个包依然是在维护中的:http://pecl.php.net/package/mysql
以下代码的示例环境是:Mac 下面 brew 安装的 php nginx php-fpm
先安装一下编译环境:
brew install autoconf
创建 mysql 的扩展目录:
/usr/local/Cellar/php71-mysql
下载源文件:
git clone https://git.php.net/repository/pecl/database/mysql.git .
然后编译安装:
/usr/bin/phpize
./configure
make
sudo make install
默认的安装地址是:
/usr/local/Cellar/php71/7.1.4_16/lib/php/extensions/no-debug-non-zts-20160303/mysql.so
然后修改 php.ini 并在其中添加:
extension = /usr/local/Cellar/php71/7.1.4_16/lib/php/extensions/no-debug-non-zts-20160303/mysql.so
在具体使用的时候,还需要设置 Mysql 不要显示依赖错误:
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
重启 php:
brew services restart php71
就可以在 phpinfo() 中看到 mysql 模块了
参考文章:
https://ckon.wordpress.com/2015/08/06/put-mysql-functions-back-into-php-7/