mysqli扩展无法在PHP7下升级问题的解决
时间:2022-07-27
本文章向大家介绍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了(而我的机器目前正好是此版本),如下图:
为了验证这一点,我在同事的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是一个虚拟的包。最终顺利安装完成。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ZaLou.Cn的支持。
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- js input file 转base64
- 算法和数据结构:快速排序
- 算法和数据结构:归并排序
- 算法和数据结构: 二 基本排序算法
- 非中间人就没法劫持TCP了吗?
- HW在即——红队活动之Lnk样本载荷篇
- 用正则表达式修改html字符串的所有div的style样式
- 深入理解 WebSecurityConfigurerAdapter【源码篇】
- 算法和数据结构: 十二 无向图相关算法基础
- 算法和数据结构: 十一 哈希表
- 【DB笔试面试849】在Oracle中,在没有配置ORACLE_HOME环境变量的情况下,如何获取ORACLE_HOME目录?
- 算法和数据结构: 九 平衡查找树之红黑树
- 算法和数据结构: 七 二叉查找树
- Python 面向对象编程(下篇)
- 算法和数据结构: 符号表及其基本实现