(操作系统 Centos7,环境版本 php7)

01,进入到 PHP 解压后的源码包的的 ext 文件夹

02,查看是否存在 mysqli 扩展 => ls, 如果不存在需要去响应网站下载 (百度 Google 下载)

03,这里既是所有 PHP 官方提供的扩展,进入到 mysqli 目录 => cd mysqli

04,执行命令 => phpize

05,如果出现以上错误可以用 yum 安装依赖 => yum -y install autoconf => phpize

06,配置编译参数 ./configure --with-mysqli=mysqlnd  这里要求你必须先安装了 mysqlnd

07,配置完成后编译扩展 => make

08,如果出现以上错误,将 mysqli_api.c 文件第 36 行的代码中的相对路径修改成如下的绝对路径

09,比较新一点 php 版本如果扩展编译时使用默认路径,那么也可以这样配置,这种配置的好处是迁移时不需要修改

10,再次执行 make => make install,出现如下界面为编译安装成功

11,以上返回的路径便是扩展安装的路径,记住红框内的路径,查看模块是否安装成功

ls /root/software/php/lib/php/extensions/no-debug-non-zts-20170718/

12,以上的 mysqli.so 就是 mysqli 扩展

13,修改配置文件 php.ini ( 如果找不到,请移步 https://www.cnblogs.com/lovling/p/9301851.html )

14,在文件的最后添加如下代码,右边的路径就是 mysqli.so 所在的路径

15,重启 php-fpm 或者 httpd (根据自己的环境选择)

16,随意访问一个写有 <?php phpinfo() ?> 的文件,出现以下画面为安装成功

 17,一个简单的利用 mysqli 做查询的数据路例子

<?php
/**
* 准备数据库连接参数,地址,账号,密码,具体库名称
*/
$host = "192.168.200.100:3306";
$user = "root";
$password = "920619";
$dbname = "test"; /**
* 实例化 mysqli 对象
*/
$mysqli = new mysqli($host, $user, $password, $dbname); /**
* 设置查询结果数字类型的字段不会被自定转化为字符串类型
* 该方法要求 mysqli 扩展在安装时必须使用 mysqlnd 依赖
* 设置编码防止乱码,互联网开发常用为 utf8 编码
*/
$mysqli -> options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, true);
$mysqli-> set_charset("utf8"); /**
* 检测数据库连接是否有错,一切正常时 connect_errno 为 0
* 当发生错误时,connect_error 记录了错误信息
*/
if ($mysqli -> connect_errno != 0) echo $mysqli -> connect_error; /**
* 准备一个 SQL 语句并执行,返回结果集
*/
$sql = "SELECT * FROM user";
$mysqli_result = $mysqli -> query($sql); /**
* 获取查询结果返回一个关联数组,常量参数解析如下
* MYSQLI_NUM 返回常规数组 (拒绝)
* MYSQLI_ASSOC 返回关联数组 (推荐)
* MYSQLI_BOTH 返回混合数组 (默认)
*/
$result = $mysqli_result -> fetch_all(MYSQLI_ASSOC); /**
* 关闭 mysqli 对象从而关闭数据库连接
*/
$mysqli -> close(); /**
* 打印查询结果的详细信息
*/
var_dump($result);

PHP 扩展在 Linux(centos7)系统下的编译与安装 以 mysqli 为例的更多相关文章

  1. Linux centos7系统下svn的安装与配置

    一.安装svn # yum -y install svn 二.查看svn版本信息 # svnserve --version 三.搭建svn版本库(假设项目名称为project) 1.首先创建版本库目录 ...

  2. Linux centos7环境下安装JDK的步骤详解

    Linux centos7环境下安装JDK的步骤详解 测试root用户下JAVA版本 输入命令:   java –version 1.先到Oracle官网里下载好jdk,网址如下: http://ww ...

  3. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(一) 一.Linux下安装MySQL 1.下载 下载地址:http://dev.mysql.co ...

  4. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(二)

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(二) 安装apache web容器 . yum方式安装apache 注意apache在linux ...

  5. linux ubuntu系统下,adb不是内部命令 (如何才能让adb命令可以使用)

    linux ubuntu系统下,adb不是内部命令 原文地址 linux ubuntu系统下,adb不是内部命令 解决方法: 1.sudo gedit ~/.bashrc 2.将下面的两句加到上面打开 ...

  6. Linux(CentOS)系统下安装好apache(httpd)服务后,其他电脑无法访问的原因

    原文:Linux(CentOS)系统下安装好apache(httpd)服务后,其他电脑无法访问的原因 今天试了下在虚拟机上利用CentOS系统的yum命令安装好了httpd(apache2.4.6), ...

  7. Linux centos7环境下安装MySQL的步骤详解

    Linux centos7环境下安装MySQL的步骤详解 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 ...

  8. Linux centos7环境下安装Nginx

    Linux centos7环境下安装Nginx的步骤详解 1.    首先到Nginx官网下载Nginx安装包 http://nginx.org/download/nginx-1.5.9.tar.gz ...

  9. centos7系统下搭建docker本地镜像仓库

    ## 准备工作 用到的工具, Xshell5, Xftp5, docker.io/registry:latest镜像 关于docker的安装和设置加速, 请参考这篇博文centos7系统下 docke ...

随机推荐

  1. 项目出现 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解决方法

    1. The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path ①项 ...

  2. react中的路由模块化

    在vue中,可以将路由单独写在一个配置文件中,便于整理维护,而在前面总结整理的react中,都是直接将路由配置放在需要使用的地方,少数的时候话可以接受,但是当项目做大,这种方式就不再被推荐了,我们再r ...

  3. MATLAB的一些小技巧

    写论文要将图片保存为tiff格式,还要求dpi,还要标注,真是麻烦,下面的命令是最方便的程序化处理方式了 MATLAB text标注后 保存为 tiff 图片,图片到边框间无空白 clear all; ...

  4. 廖雪峰Java6 IO编程-2input和output-5操作zip

    1.ZipInputStream是一种FilterInputStream 可以直接读取zip的内容 InputStream->FilterInputStream->InflateInput ...

  5. openVPN设置本地密码验证

    wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh https://github.com/ ...

  6. Jmeter(二十五)Jmeter之系统函数

    都忘了Jmeter4.0已发布((*^▽^*))具体优化项还没体验,记录一下,传送门:http://jmeter.apache.org/download_jmeter.cgi Jmeter的系统函数已 ...

  7. [UE4]widget事件:On Mouse Enter、On Move Leave、Set Color And Opactiy

    只要是widget对象,都具有On Mouse Enter.On Move Leave事件

  8. vue 双向数据绑定 Vue事件介绍 以及Vue中的ref获取dom节点

    <template> <div id="app"> <h2>{{msg}}</h2> <input type="te ...

  9. 初始Golang

    Golang初识 字节跳动也就是我们常说的今日头条 1.今日头条基于Go语言构建千亿级微服务的实践 今日头条当前后端服务超过80%的流量是跑在Go构建的服务上 微服务数量超过100个 高峰QPS超过7 ...

  10. 在Java中String类为什么要设计成final?String真的不可变吗?其他基本类型的包装类也是不可变的吗?

    最近突然被问到String为什么被设计为不可变,当时有点懵,这个问题一直像bug一样存在,竟然没有发现,没有思考到,在此总结一下. 1.String的不可变String类被final修饰,是不可继承和 ...