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&amp;mysql(一)
Oct 09 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 PHP
PHP设置一边执行一边输出结果的代码
Sep 30 PHP
PHP字符串长度计算 - strlen()函数使用介绍
Oct 15 PHP
php对二维数组按指定键值key排序示例代码
Nov 26 PHP
PHP中使用socket方式GET、POST数据实例
Apr 02 PHP
如何使用Gitblog和Markdown建自己的博客
Jul 31 PHP
php 参数过滤、数据过滤详解
Oct 26 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
Jul 18 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
PHP折半(二分)查找算法实例分析
May 12 PHP
Laravel框架实现抢红包功能示例
Oct 31 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实现采集程序原理和简单示例代码
2007/03/18 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
laravel学习教程之存取器
2016/07/30 PHP
PHP7常量数组用法分析
2016/09/26 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
php自动加载代码实例详解
2021/02/26 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
javascript preload&amp;lazy load
2010/05/13 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
js获取图片宽高的方法
2015/11/25 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
python类型强制转换long to int的代码
2013/02/10 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
对python 中re.sub,replace(),strip()的区别详解
2019/07/22 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
pygame实现成语填空游戏
2019/10/29 Python
如何基于python实现不邻接植花
2020/05/01 Python
python Xpath语法的使用
2020/11/26 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
资产经营总监岗位职责范文
2013/12/01 职场文书
商务英语求职自荐信范文
2013/12/24 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
学习经验交流会策划书
2015/11/02 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
Python实现简单的俄罗斯方块游戏
2021/09/25 Python
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers