mysqli扩展无法在PHP7下升级问题的解决

前端之家收集整理的这篇文章主要介绍了mysqli扩展无法在PHP7下升级问题的解决前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

这几天在想部署一个OAuth服务,找了一个PHP的开源实现,由于要求的PHP版本比较高,就打算在自己的ECS上(PHP7.1)先测试下,没想到遇到了一些问题。

首先发现MysqLi扩展没有装(MysqL扩展在PHP7中已经废弃了),原来PHP7是使用ondrej/PHP源安装的,可运行 apt-cache search PHP7 | grep MysqL 居然发现没有任何的MysqL扩展,包括PHP-memcached扩展也没有,可实际上该扩展我已经安装了。

百思不得其解,我仔细查看了ondrej/PHP PPA的页面 https://launchpad.net/~ondrej/+archive/ubuntu/php,发现这个ppa包已经不支持Ubuntu14.4了(而我的机器目前正好是此版本),如下图:

mysqli扩展无法在PHP7下升级问题的解决

为了验证这一点,我在同事的Ubuntu16下装了ondrej/PHP包,进行测试:

$ apt-cache policy PHP7.3
PHP7.3:
 Installed: (none)
 Candidate: 7.3.7-2+ubuntu16.04.1+deb.sury.org+1
 Version table:
  7.3.7-2+ubuntu16.04.1+deb.sury.org+1 500
  500 http://ppa.launchpad.net/ondrej/PHP/ubuntu xenial/main i386 Packages

$ apt-cache policy PHP-memcached
PHP-memcached:
 Installed: (none)
 Candidate: 3.1.3+2.2.0-1+ubuntu16.04.1+deb.sury.org+1
 Version table:
  3.1.3+2.2.0-1+ubuntu16.04.1+deb.sury.org+1 500
  500 http://ppa.launchpad.net/ondrej/PHP/ubuntu xenial/main i386 Packages
  2.2.0-51-ge573a6e+2.2.0-2build2 500
  500 http://mirrors.tencentyun.com/ubuntu xenial/universe i386 Packages

从中可以看出ondrej/PHP包在Ubuntu16下可以安装PHP7.3,同时也包含PHP-memcached扩展。

验证ondrej/PHP不支持Ubuntu14后,我找了一个PHP PPA包serp2002/PHP7-backport,在安装之前我先卸载了ondrej/PHP包:

$ LC_ALL=C.UTF-8 add-apt-repository --remove ppa:ondrej/PHP

然后:

$ apt-cache show PHP7.3-MysqL
Package: PHP7.3-MysqL
Source: PHP7.3
Priority: optional
Section: PHP
Installed-Size: 403
Maintainer: Debian PHP Maintainers <team+pkg-PHP@tracker.debian.org>
Architecture: i386
Version: 7.3.7-2+ubuntu16.04.1+deb.sury.org+1
Provides: PHP-MysqLi,PHP-MysqLnd,PHP-pdo-MysqL,PHP7.3-MysqLi,PHP7.3-MysqLnd,PHP7.3-pdo-MysqL

可见 PHP7.3-MysqL 这个包实际上包含了很多MysqL相关的包,比如 MysqLi或pdo,如果你单独安装其中一个:

$ apt-get install PHP7.3-MysqLi
N: Can't select versions from package 'PHP7.3-MysqLi' as it is purely virtual
N: No packages found

提示PHP7.3-MysqLi是一个虚拟的包。最终顺利安装完成。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持

原文链接:https://www.f2er.com/php/525883.html

猜你在找的PHP相关文章