Linux 环境下 PHP 扩展的变异编译与安装

Posted 被遗忘的优雅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 环境下 PHP 扩展的变异编译与安装相关的知识,希望对你有一定的参考价值。

(操作系统 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);

 

以上是关于Linux 环境下 PHP 扩展的变异编译与安装的主要内容,如果未能解决你的问题,请参考以下文章

Centos 7(Linux)环境下安装PHP(编译添加)相应动态扩展模块so(以openssl.so为例)

如何编译安装PHP扩展

Linux下利用phpize安装memcashe的php源码扩展包

Linux下安装memcache扩展

Linux下单独编译安装PHP扩展包

Linux下安装PHP扩展Memcache