php 5.2.3+mysqli 安装与常见错误 总结

php 5.2.3+mysqli 安装与常见错误 总结
 
记得原来在编译php的已经已经加上参数
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
可后来找了一个,的确不存在mysqli.so,所以只能单独来编译mysqli了。
mysqli是优化过的mysql函数库,MYSQL版本不能低于4.1.12
cd /root/tmp/php-5.2.3/ext/mysqli
#####进入到mysqli的目录。
再用phpize生成configure文件:
/usr/local/bin/phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
#./configure --prefix=/usr/local/mysqli --with-php-config=/usr/local/bin/php-config --with-mysqli=/usr/bin/mysql_config
make 
make install
Installing shared extensions:     /usr/local/lib/php/extensions/debug-non-zts-20060613/
然后在/usr/local/lib/php.ini
加上一句:
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/mysqli.so
重新启动apache即可看到已经加载mysqli成功。
 
 
1、如果出现出错代码:
 
 
  1. /root/tmp/php-5.2.3/ext/mysqli/mysqli.c: In function 'zm_startup_mysqli':
  2. /root/tmp/php-5.2.3/ext/mysqli/mysqli.c:637: error: 'MYSQL_RPL_MASTER' undeclared (first use in this function)
  3. /root/tmp/php-5.2.3/ext/mysqli/mysqli.c:637: error: (Each undeclared identifier is reported only once
  4. /root/tmp/php-5.2.3/ext/mysqli/mysqli.c:637: error: for each function it appears in.)
  5. /root/tmp/php-5.2.3/ext/mysqli/mysqli.c:638: error: 'MYSQL_RPL_SLAVE' undeclared (first use in this function)
  6. /root/tmp/php-5.2.3/ext/mysqli/mysqli.c:639: error: 'MYSQL_RPL_ADMIN' undeclared (first use in this function)
  7. *** Error code 1
 
修改一下这个文件就可以

cd /usr/include/mysql
root@www[/usr/include/mysql]# vi mysql.h

在第221行
 

 
  1. ... ...
  2. enum mysql_protocol_type
  3. {
  4. MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET,
  5. MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY
  6. };
  7. /*
  8. There are three types of queries - the ones that have to go to
  9. the master, the ones that go to a slave, and the adminstrative
  10. type which must happen on the pivot connectioin
  11. */

#添加下面的4行
 

 
  1. enum mysql_rpl_type
  2. {
  3. MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN
  4. };
 
2、如果出现以下错误:
/root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c: In function 'zif_mysqli_stmt_bind_param':
/root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c:144: error: 'gptr' undeclared (first use in this function)
/root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c:144: error: (Each undeclared identifier is reported only once
/root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c:144: error: for each function it appears in.)
/root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c: In function 'zif_mysqli_stmt_execute':
/root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c:603: error: 'gptr' undeclared (first use in this function)
make: *** [mysqli_api.lo] 错误 1
 
修改一下这个文件就可以
vi mysqli_api.c
查找所有gptr,有四处分别位于行144、行150、行603、行607,以 char* 替换
 
测试Mysqli运行状况:
Vim mysqli.php
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "dbname");
/* check connection */ 
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
printf("Host information: %s\n", $mysqli->host_info);
/* close connection */
$mysqli->close();
?> 
 

Linux装mysqli.so的更多相关文章

  1. Linux装python3

     记住下载的软件最好装在/opt下默认的 大家都这样做 linux装python3.7我们以安装最新的来做测试 先下载关联的包防止出错 安装python前的库环境,非常重要yum install gc ...

  2. 给Linux装图形化界面

    在工作中遇到这种情况,安装confluence服务的时候需要调用图形化桌面,但是原来装系统的时候是最小化装的,所以这里就麻烦了 给装图形化吧 在我们安装Linux系统时,刚开始的时候可能没有安装图形界 ...

  3. Linux装系统问题

    最近要把以前的Linux red hat 5.3,32位的系统换成Linux red hat6.2 64位系统,中间出现问题,不知道为什么系统装完之后回滚,还是之前的5.3.,为此纠结好久,终于找到问 ...

  4. 使用VMware将Linux装在物理硬盘上,开机即可进入Linux (转)

    目录(?)[-] 本文目的 具体操作 1 软件准备 2  安装 21 对硬盘操作 22 创建虚拟机并安装 23 使用Grub引导Linux 1. 本文目的 适合于没有光驱的计算机来安装Linux,还有 ...

  5. linux 装composer的出现的问题

    curl -sS https://getcomposer.org/installer | php php 值得是php的liux下的安装目录 php环境变量 当装compser 的时候,出现      ...

  6. 小白有问题-下雨天给linux装adobe flash player更配

    上班出门还没下雨天气闷热,现在的外面下的却是倾盆大雨.还好出门带了伞,内心还是快乐的. 上班我们都是用的Debian系统,平时没事上上网偶尔会遇到提示没安装flash的问题,正好现在没啥事,就打算把它 ...

  7. linux装完整版

    1.100G空间 计算机管理→磁盘管理→100G的逻辑分区(如果有三个主分区,linux就不能继续安装了) 2.iso工具写入硬盘镜像

  8. Kali Linux 装好系统后安装经常使用软件

    1.配置软件源  leafpad /etc/apt/source.list or(recommand): #官方源 deb http://http.kali.org/kali kali main no ...

  9. Linux装agent

    解压Linux.zip  Linux的负载机链接:https://pan.baidu.com/s/1yrmsT3PYfuL9Wlh4FEYxaA 密码:s72n unzip Linux.zip chm ...

随机推荐

  1. location.replace()和location.href=进行跳转的区别

    location.href 通常被用来跳转到指定页面地址;location.replace 方法则可以实现用新的文档替换当前文档;location.replace 方法不会在 history 对象中生 ...

  2. Spring整合Hibernate与Struts

    整合S2SH 一.导入jar包 Spring jar包 Hibernate jar包 Struts2 jar包 以上就是整合需要的所有jar包,当然其中有重复的包,(对比之后去掉版本低的就可以了,还有 ...

  3. 关于sum.misc.Unsafe的一点记录

    最近在读Undertow的源码,对于ServletPrintWriterDelegate类的实现比较感兴趣,做个记录. 源码github坐标:ServletPrintWriterDelegate.ja ...

  4. 安装配置apache sentry服务

    环境 系统环境:Centos6.7 Hadoop版本:CDH5.10 jdk版本:jdk7 注:本文并未集成kerberos组件 安装Sentry Server 选择安装hive的节点进行安装测试: ...

  5. [atcoder002E] Candy Piles [博弈论]

    题面: 传送门 思路: 每一堆糖排成一列,所有列横着放,形成一个阶梯型 两个决策相当于左边一列去掉和最下面一行去掉 那么这个模型可以转化为同样形状的网格图,向左上方走,走到边界的赢· 然后一波数学推导 ...

  6. [ZJOI2012][bzoj 2816] 网络 network [LCT]

    题目: http://www.lydsy.com/JudgeOnline/problem.php?id=2816 思路: 第一个条件看完暂时还没什么想法 看完第二个,发现每一个颜色都是一个森林 进而想 ...

  7. POJ1848 Tree 【树形dp】

    题目链接 POJ1848 题解 由题,一个环至少由三个点组成,一个点作为根时,可以单独成链,可以与其一个儿子成链,或者与其两个儿子成环,与其一个剩余链长度大于等于2的儿子成环. 那么我们设最小代价 \ ...

  8. loj 300 [CTSC2017]吉夫特 【Lucas定理 + 子集dp】

    题目链接 loj300 题解 orz litble 膜完题解后,突然有一个简单的想法: 考虑到\(2\)是质数,考虑Lucas定理: \[{n \choose m} = \prod_{i = 1} { ...

  9. codechef May Challenge 2016 LADDU: Ladd 模拟

    All submissions for this problem are available. Read problems statements in Mandarin Chinese, Russia ...

  10. 对计算属性中get和set的理解

    原文参考:https://blog.csdn.net/xiaxiaoxian/article/details/79304004