如何通过补丁让PHP7.0支持mysql_connect函数
解决PHP7.0兼容mysql_connect的实操方案
完全懂你的纠结——老代码不想改,PHP版本也不想退,这个兼容补丁确实是最省心的路子,我来给你一步步捋清楚操作步骤:
第一步:安装编译依赖
因为要编译PHP扩展,得先把必要的工具包装上,在Ubuntu Server 16.04里执行这条命令:sudo apt-get update && sudo apt-get install php7.0-dev gcc make autoconf libc-dev pkg-config php7.0-mysqlnd这里
php7.0-mysqlnd是核心依赖,兼容扩展必须靠它才能正常工作。第二步:获取兼容扩展源码
你可以从PHP官方PECL仓库获取对应PHP7.0版本的mysql兼容扩展源码包,下载后解压到服务器本地目录(比如/tmp),然后进入解压后的文件夹:cd /tmp/pecl-database-mysql-xxx # 替换成你实际的解压目录名称第三步:编译并安装扩展
接下来是编译扩展的标准流程,依次执行以下命令:phpize7.0 ./configure --with-php-config=/usr/bin/php-config7.0 make && sudo make install执行完
make install后,终端会输出扩展的安装路径,记下来方便后续排查问题。第四步:配置PHP启用扩展
现在需要把这个兼容扩展加到PHP配置里,根据你的服务环境找到对应php.ini文件:- Apache环境:编辑
/etc/php/7.0/apache2/php.ini - PHP-FPM环境:编辑
/etc/php/7.0/fpm/php.ini - CLI模式:编辑
/etc/php/7.0/cli/php.ini
打开文件后,在末尾添加一行:
extension=mysql.so保存并退出即可。
- Apache环境:编辑
第五步:重启服务并验证
重启你的web服务让配置生效:- Apache:
sudo systemctl restart apache2 - PHP-FPM:
sudo systemctl restart php7.0-fpm
然后创建一个测试文件
test.php,内容如下:<?php if (function_exists('mysql_connect')) { echo "搞定!mysql_connect 已经可以正常使用了"; } else { echo "还没成功,检查下步骤有没有遗漏"; } ?>用浏览器访问这个文件,或者在终端执行
php7.0 test.php,如果输出“搞定!”就说明兼容成功了。- Apache:
⚠️ 友情提示:这个兼容扩展只是临时救急方案,长远来看还是建议逐步迁移到mysqli或者PDO,毕竟老的mysql扩展已经被官方废弃很久了,后续版本可能会彻底失去支持。
内容的提问来源于stack exchange,提问作者Innocento
相关产品推荐
相关产品推荐

