加入收藏 | 设为首页 | 会员中心 | 我要投稿 吉安站长网 (https://www.0796zz.com.cn/)- 科技、图像处理、媒体智能、办公协同、操作系统!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-08-03 10:49:47 所属栏目:PHP教程 来源:互联网
导读:前言:这几天在想部署一个OAuth服务,找了一个PHP的开源实现,由于要求的PHP版本比较高,就打算在自己的ECS上(PHP7.1)先测试下,没想到遇到了一些问题。 首先发现mysqli扩展没有装(mysql扩展在PHP7中已经废弃了),原来PHP7是使用ondrej/php源安装的,可
  前言:这几天在想部署一个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
  $ 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是一个虚拟的包。最终顺利安装完成。

(编辑:吉安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读