VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • mysqli扩展无法在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了(而我的机器目前正好是此版本),如下图:

mysqli扩展 PHP7升级

为了验证这一点,我在同事的Ubuntu16下装了ondrej/php包,进行测试:

  1. $ apt-cache policy php7.3 
  2. php7.3: 
  3.  Installed: (none) 
  4.  Candidate: 7.3.7-2+ubuntu16.04.1+deb.sury.org+1 
  5.  Version table: 
  6.   7.3.7-2+ubuntu16.04.1+deb.sury.org+1 500 
  7.   500 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main i386 Packages 
  8.  
  9. $ apt-cache policy php-memcached  
  10. php-memcached: 
  11.  Installed: (none) 
  12.  Candidate: 3.1.3+2.2.0-1+ubuntu16.04.1+deb.sury.org+1 
  13.  Version table: 
  14.   3.1.3+2.2.0-1+ubuntu16.04.1+deb.sury.org+1 500 
  15.   500 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main i386 Packages 
  16.   2.2.0-51-ge573a6e+2.2.0-2build2 500 
  17.   500 http://mirrors.tencentyun.com/ubuntu xenial/universe i386 Packages 
  18. $ apt-cache policy php7.3 
  19. php7.3: 
  20.  Installed: (none) 
  21.  Candidate: 7.3.7-2+ubuntu16.04.1+deb.sury.org+1 
  22.  Version table: 
  23.   7.3.7-2+ubuntu16.04.1+deb.sury.org+1 500 
  24.   500 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main i386 Packages 
  25.  
  26. $ apt-cache policy php-memcached  
  27. php-memcached: 
  28.  Installed: (none) 
  29.  Candidate: 3.1.3+2.2.0-1+ubuntu16.04.1+deb.sury.org+1 
  30.  Version table: 
  31.   3.1.3+2.2.0-1+ubuntu16.04.1+deb.sury.org+1 500 
  32.   500 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main i386 Packages 
  33.   2.2.0-51-ge573a6e+2.2.0-2build2 500 
  34.   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

然后:

  1. $ apt-cache show php7.3-mysql   
  2. Package: php7.3-mysql 
  3. Source: php7.3 
  4. Priority: optional 
  5. Section: php 
  6. Installed-Size: 403 
  7. Maintainer: Debian PHP Maintainers <team+pkg-php@tracker.debian.org> 
  8. Architecture: i386 
  9. Version: 7.3.7-2+ubuntu16.04.1+deb.sury.org+1 
  10. 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是一个虚拟的包。最终顺利安装完成。

 

出处:http://www.phpfensi.com/php/20211216/19100.html


相关教程