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是一个虚拟的包。最终顺利安装完成。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

(0)

相关推荐

  • PHP使用mysqli扩展连接MySQL数据库

    1.面向对象的使用方式 $db = new mysqli('localhost', 'root', '123456', 'dbname'); 如果建立连接时未指定数据库则选择使用的数据库,切换使用的数据库 $db->select_db('dbname'); $query = "SELECT * FROM user WHERE uid=4"; $result = $db->query($query); $result_num = $result->num_rows; $

  • 解析在PHP中使用mysqli扩展库对mysql的操作

    1.在PHP中 使用mysqli扩展库对mysql 的dql操作 复制代码 代码如下: <?php    header("Content-type: text/html;charset=utf-8");    //mysqli操作mysql数据库(面向对象方式)    //1.创建MySQLi对象    $mysqli =new MySQLi("localhost","root","root","test&qu

  • 如何判断php mysqli扩展类是否开启

    如何判断php mysqli扩展类是否开启 php判断mysqli扩展类是否开启,源码如下: <?php /* by http://www.manongjc.com/article/1206.html */ function mysqlinstalled (){ if (function_exists ("mysql_connect")){ return true; } else { return false; } } function mysqliinstalled (){ i

  • php结合mysql与mysqli扩展处理事务的方法

    本文实例讲述了php结合mysql与mysqli扩展处理事务的方法.分享给大家供大家参考,具体如下: 以下只是展示如何应用,具体用的时候要加上判断,如果都执行成功则提交,否则回滚 看前先分清mysqli与mysql扩展是不一样的 mysqli扩展处理事物: $mysqli=new mysqli('localhost','root','123456','test'); $mysqli->autocommit(false);//开始事物 $query="update a set money=m

  • php开启mysqli扩展之后如何连接数据库

    Mysqli是php5之后才有的功能,没有开启扩展的朋友可以打开您的php.ini的配置文件. 查找下面的语句:;extension=php_mysqli.dll将其修改为:extension=php_mysqli.dll即可. 相对于mysql有很多新的特性和优势 (1)支持本地绑定.准备(prepare)等语法 (2)执行sql语句的错误代码 (3)同时执行多个sql (4)另外提供了面向对象的调用接口的方法. 下面一一用php实例进行mysqli数据库连接! 使用方法一:使用传统的面向过程

  • php安装扩展mysqli的实现步骤及报错解决办法

    php安装扩展mysqli的实现步骤及报错解决办法 terminal #cd php-5.3.6/ext/mysqli #/usr/local/webserver/php/bin/phpize #./configure --with-php-config=/usr/local/webserver/php/bin/php-config #make #make instal 报错: checking for MySQLi support... yes checking whether to enab

  • PHP mysqli扩展库 预处理技术的使用分析

    1.使用mysqli扩展库 预处理技术 mysqli stmt 向数据库添加3个用户 复制代码 代码如下: <?php //mysqli扩展库 预处理技术 mysqli stmt 向数据库添加3个用户    //1.创建mysqli对象    $mysqli = new MySQLi("localhost","root","root","test");    if($mysqli->connect_error){ 

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

    前言 这几天在想部署一个OAuth服务,找了一个PHP的开源实现,由于要求的PHP版本比较高,就打算在自己的ECS上(PHP7.1)先测试下,没想到遇到了一些问题. 首先发现mysqli扩展没有装(mysql扩展在PHP7中已经废弃了),原来PHP7是使用ondrej/php源安装的,可运行 apt-cache search php7 | grep mysql 居然发现没有任何的mysql扩展,包括连php-memcached扩展也没有,可实际上该扩展我已经安装了. 百思不得其解,我仔细查看了o

  • php7下安装event扩展方法

    有效安排I/O,时间和信号的扩展 使用可用于特定平台的最佳I/O通知机制的事件,是PHP基础设施的libevent端口. 下载地址:http://pecl.php.net/package/event 安装支持库libevent,需要编译高版本(这里以最新版本release-2.1.8-stable为例) wget -c https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.

  • MacOS下PHP7.1升级到PHP7.4.15的方法

    最近写SDK的时候需要用到object类型提示符,PHPStorm智能提示说需要PHP7.2以上才能支持这种类型提示. 我一查我本机的PHP是7.1.30版本,于是考虑升级一下PHP版本. 首先要尝试使用如下命令进行升级: brew update brew upgrade php@7.4 第一个遇到的报错如下所示: git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow This restr

  • 解决phpmyadmin中缺少mysqli扩展问题的方法

    phpMyAdmin错误 缺少 mysqli 扩展.请检查 PHP 配置 的解决方案 phpMyAdmin 缺少 mysqli 扩展.请检查 PHP 配置 的解决方案: 缺少 mysqli 扩展.请检查 PHP 配置. 打开你的php.ini->一般在C:WINDOWS目录下. 找到 复制代码 代码如下: ;extension=php_msql.dll ;extension=php_mssql.dll extension=php_mysql.dll extension=php_mysqli.dl

  • CentOS 6.X系统下升级Python2.6到Python2.7 的方法

    第一步:升级python CentOs 6.x的系统默认安装的Python版本是2.6.x,想升级到Python2.7.x,从官方下载源文件,然后解压.编译 wget http://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz unxz Python-2.7.10.tar.xz tar -vxf Python-2.7.10.tar 执行完以上命令会解压得到Python-2.7.10这个文件夹,进入该目录并执行以下命令进行配置 ./co

  • PHP扩展迁移为PHP7扩展兼容性问题记录

    PHP7扩展编写的时候,提供的一些内核方法和之前的PHP之前的版本并不能完全兼容.有不少方法参数做了调整.下面是在迁移过程中遇到的一些问题.记录下来,避免大家再踩坑. add_assoc_stringl 方法参数改为四个. add_assoc_stringl(parray, key, value, value_len); 迁移的时候,只要把最后一个参数删除即可. add_assoc_string 方法参数从四个改为了三个. add_assoc_stringl(parray, key, value

  • PHP7下安装并使用xhprof性能分析工具

    该 xhprof 版本是从 https://github.com/longxinH/xhprof 获取 安装 xhprof cd xhprof/extension/ phpize ./configure  make 然后在/etc/php.ini中根据情况加入 extension=xhprof.so 执行 php -m | grep xhprof 可以看见输出,说明php扩展安装成功,然后重启Apache或者php-fpm 运行 可以直接运行从github上clone下来的文件里面example

  • 在wamp集成环境下升级php版本(实现方法)

    wamp集成环境下升级php版本1.下载php版本压缩包,解压php版本压缩包2.停掉wamp服务3.替换wamp\php文件4.替换wamp\Apache2\bin目录下的php5nsapi.dll 和 php5ts.dll(对应当前php版本的)5.重启wamp服务6.phpinfo()测试 我遇到的问题 时区设置问题解决方案:wamp\Apache2\bin\php.ini ; Module Settings ; ;新增时区设置[Date]; Defines the default tim

随机推荐