数字营销 · Web开发 · 基础设施

如何在PHP7中安装mysql扩展

介绍在 PHP 7 环境下手动编译安装旧版 mysql 扩展的方法,包括 phpize 初始化、源码编译、php.ini 配置以及安装结果检查,并说明 mysql 扩展的兼容性问题。

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 扩展已经走到了生命周期的尽头。如果没有特殊的兼容性需求,尽量还是在程序中将 mysql 扩展替换为 mysqli 或 PDO。

评论0

欢迎分享你的看法,也欢迎补充不同的实践经验。