(操作系统 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. phinx 使用指南

    一 使用 第一步 安装 composer require robmorgan/phinx第二步 初始化php vendor/robmorgan/phinx/bin/phinx init创建目录db/m ...

  2. DS图--最小生成树

    题目描述 根据输入创建无向网.分别用Prim算法和Kruskal算法构建最小生成树.(假设:输入数据的最小生成树唯一.) 输入 顶点数n n个顶点 边数m m条边信息,格式为:顶点1 顶点2 权值 P ...

  3. TCP/IP学习20180624

    计算机要互相通信.要有标准. TCP/IP协议,很多协议在一起.所以也叫TCP/IP协议族.经常接触的也就十几种. TCP/IP协议族按层次分为四层: 应用层(最上一层,http,ftp,pop3,i ...

  4. P1601高精度加法

    传送门 虽然本题一本通上有,但是一本通不是万能的,这道题就漏掉了进位(所以这告诉我们加法进位很重要) 直接上修改后的题解 #include<iostream> #include<cs ...

  5. openssl命令实例

    基本知识 1,证书标准 X.509 X.509 - 这是一种证书标准,主要定义了证书中应该包含哪些内容.其详情可以参考RFC5280,SSL使用的就是这种证书标准. X.509的证书文件,一般以.cr ...

  6. opengl 无法定位程序输入点_glutInitWithExit于动态链接库glut32.dll上

    1.问题:opengl 无法定位程序输入点_glutInitWithExit于动态链接库glut32.dll上 2.环境:vc6.0  win7,64位,opengl. 3.解决:将glut32.dl ...

  7. [转][Java]尝试解决Java多行字符串的编辑问题

    转自:https://blog.csdn.net/jiuwuerliu/article/details/51207045 参考了:https://www.v2ex.com/amp/t/445522 除 ...

  8. css中背景的应用

    浏览器默认的字体大小是 font-size:16px; 谷歌最小的是10px 其他浏览器是12px 通配符选择器 *   “*”的意思是代表所有的标签 回到正题 background   背景 他的几 ...

  9. C语言强化——数组

    打印九九乘法表 #include<stdio.h> int main() { int num = 1; for (int i = 1;i <= 9;++i) { for (int j ...

  10. go语言学习--指针数组和数组指针

    数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的 ...