PHP 是最流行的 Web 脚本编程语言之一,全球超过 80% 的采用服务器端程序的网站使用 PHP。由于 PHP 的运行效率长期受到关注,Facebook 甚至开发了 HHVM,用来将 PHP 代码转换成字节码以提高运行效率。
为了提升 PHP 的性能,PHP 7 于 2015 年 12 月正式发布。相对于 PHP 5,PHP 7 在性能方面有了非常明显的提升。关于 PHP 7 与 HHVM 的性能对比,可以查看鸟哥的 PHP7 VS HHVM (WordPress)。
相对于 PHP 5,PHP 7 的一个重要变化就是移除了 mysql 扩展,推荐使用 mysqli 或 pdo_mysql。实际上,从 PHP 5.5 开始,PHP 就已经准备逐步弃用 mysql 扩展。
如果使用 mysql 扩展,可能会看到这样的提示:
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
所以在以后的程序中,为了保持兼容性,应尽量减少甚至避免使用已经废弃的 mysql 扩展进行数据库连接。作为运维人员来说,既想使用 PHP 7 提升服务器运行效率,又需要保证一些旧程序能够继续运行,该如何处理呢?
一种办法就是为 PHP 7 单独编译安装旧的 mysql 扩展。
下载mysql扩展
首先从 PHP 官方代码仓库下载 mysql 扩展:
http://git.php.net/?p=pecl/database/mysql.git;a=summary
解压并使用phpize初始化
解压源码:
tar xzvf mysql-45881bd.tar.gz
进入扩展目录:
cd mysql-45881bd/
使用 phpize 初始化。我的 PHP 安装在 /opt/php/ 目录:
/opt/php/bin/phpize
然后开始编译 mysql 扩展,使用 MySQL Native Driver 作为连接库:
./configure --with-php-config=/opt/php/bin/php-config --with-mysql=mysqlnd
make && make install
配置php.ini
编译完成之后,将生成的 mysql.so 放入 PHP 的 extension_dir 目录,然后在 php.ini 中加入:
extension=mysql.so
重启PHP
修改配置后重启 PHP-FPM。
检查安装结果
成功之后,可以通过 phpinfo() 查看 mysql 扩展是否已经加载:

如果能够看到 mysql 扩展的信息,就说明安装成功。
需要注意的是,mysql 扩展已经走到了生命周期的尽头。如果没有特殊的兼容性需求,尽量还是在程序中将 mysql 扩展替换为 mysqli 或 PDO。
评论0
欢迎分享你的看法,也欢迎补充不同的实践经验。