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


Posted in PHP onSeptember 10, 2019

前言

这几天在想部署一个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是一个虚拟的包。最终顺利安装完成。

总结

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

PHP 相关文章推荐
PHP 高手之路(二)
Oct 09 PHP
一个改进的UBB类
Oct 09 PHP
php at(@)符号的用法简介
Jul 11 PHP
php中的curl使用入门教程和常见用法实例
Apr 10 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
PHP获取某个月最大天数(最后一天)的方法
Jul 29 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
Sep 23 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 PHP
php实现登录页面的简单实例
Sep 29 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 26 PHP
PHP 模拟登陆功能实例详解
Sep 10 #PHP
Yii框架日志操作图文与实例详解
Sep 09 #PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 09 #PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
Sep 09 #PHP
Yii框架常见缓存应用实例小结
Sep 09 #PHP
Yii框架函数简单用法分析
Sep 09 #PHP
Yii框架的路由配置方法分析
Sep 09 #PHP
You might like
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
PHP求最大子序列和的算法实现
2011/06/24 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
php绘制一个扇形的方法
2015/01/24 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
javascript parseInt与Number函数的区别
2010/01/21 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
js实现图片拖动改变顺序附图
2014/05/13 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
js实现StringBuffer的简单实例
2016/09/02 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
[03:46]DAC趣味视频-中文考试.mp4
2017/04/02 DOTA
利用Python开发实现简单的记事本
2016/11/15 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
精伦电子Java笔试题
2013/01/16 面试题
.NET面试题:什么是反射
2016/09/30 面试题
区优秀教师事迹材料
2014/02/10 职场文书
西双版纳导游词
2015/02/03 职场文书
保安辞职信范文
2015/02/28 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
js实现自动锁屏功能
2021/06/02 Javascript
Redis集群的关闭与重启操作
2021/07/07 Redis