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
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
php 图片加水印与上传图片加水印php类
May 12 PHP
PHP下打开URL地址的几种方法小结
May 16 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
分享一则PHP定义函数代码
Feb 26 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
Apr 26 PHP
php获取开始与结束日期之间所有日期的方法
Nov 29 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
PHP安装BCMath扩展的方法
Feb 13 PHP
解决Laravel5.2 Auth认证退出失效的问题
Oct 14 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
smarty循环嵌套用法示例分析
2016/07/19 PHP
JS array 数组详解
2009/03/22 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
IE6 fixed的完美解决方案
2011/03/31 Javascript
JS实现鼠标单击与双击事件共存
2014/03/08 Javascript
给js文件传参数(详解)
2014/07/13 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
基于javascript实现tab选项卡切换特效调试笔记
2016/03/30 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
Python的语言类型(详解)
2017/06/24 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
Windows和Linux动态库应用异同
2016/04/17 面试题
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
小小商店教学反思
2014/04/27 职场文书
网吧消防安全责任书
2014/07/29 职场文书
2014年会计工作总结
2014/11/27 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
部队2015年终工作总结
2015/04/02 职场文书
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
element tree树形组件回显数据问题解决
2022/08/14 Javascript