因為要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/