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

 更新时间:2019年09月10日 09:29:27   作者:虞大胆的叽叽喳喳  
这篇文章主要给大家介绍了关于mysqli扩展无法在PHP7下升级问题的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用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了(而我的机器目前正好是此版本),如下图:


为了验证这一点,我在同事的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实现词法分析器与自定义语言

    这篇文章主要为大家详细介绍了润滑利用PHP实现词法分析器与自定义语言,文中的示例代码讲解详细,感兴趣的小伙伴可以动手尝试一下
    2022-08-08
  • php封装的单文件(图片)上传类完整实例

    php封装的单文件(图片)上传类完整实例

    这篇文章主要介绍了php封装的单文件(图片)上传类,结合完整实例形式分析了php图片文件上传操作的相关处理技巧,需要的朋友可以参考下
    2016-10-10
  • php修改数组键名的方法示例

    php修改数组键名的方法示例

    这篇文章主要介绍了php修改数组键名的方法,涉及php针对数组的遍历、截取、转换等相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • PHP的变量类型和作用域详解

    PHP的变量类型和作用域详解

    什么是变量的作用域?变量的作用域是指在脚本的一次生命周期内变量的有效范围。一般来说有全局和局部之分
    2014-03-03
  • php 不使用js实现页面跳转

    php 不使用js实现页面跳转

    页面跳转大多情况下是使用js,其实也可以不用,下面为大家介绍下具体的实现,需要的朋友可以参考下
    2014-02-02
  • PHP输出时间差函数代码

    PHP输出时间差函数代码

    在学习PHP 的时候,经常会用到获取现在之前或之后,某个时间段的日期。现在已经进行收集,大家同时也可以进行扩展丰富
    2013-01-01
  • php 数组的指针操作实现代码

    php 数组的指针操作实现代码

    php 数组的指针操作实现代码,数组在php编写中是非常重要的操作,学习php的朋友可以参考下。
    2011-02-02
  • 详解php 使用Callable Closure强制指定回调类型

    详解php 使用Callable Closure强制指定回调类型

    这篇文章主要介绍了详解php 使用Callable Closure强制指定回调类型的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-10-10
  • 深入php self与$this的详解

    深入php self与$this的详解

    本篇文章是对php中的self与$this进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 自由掌控下载速度:PHP实现文件限速

    自由掌控下载速度:PHP实现文件限速

    文件限速是一种控制文件下载速度的技术,可以防止服务器过载和保护用户体验,本文将介绍如何使用PHP实现文件限速功能,通过控制文件的输出速度来限制下载速度,需要的朋友可以参考下
    2023-10-10

最新评论