zoukankan      html  css  js  c++  java
  • Linux装mysqli.so

     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 ", mysqli_connect_error());
        exit();
    }
    printf("Host information: %s ", $mysqli->host_info);
    /* close connection */
    $mysqli->close();
    ?> 
     
  • 相关阅读:
    .NET平台系列18 .NET5的超强优势
    .NET平台系列17 .NET5中的ARM64性能
    .NET平台系列19 新世界中的.NET大统一平台架构解析
    .NET平台系列16 .NET5/Asp.Net Core 在全球Web框架权威性能测试 Web Framework Benchmarks 中的吊炸天表现
    .NET平台系列15 .NET5的吊炸天性能改进
    .NET平台系列14 .NET5中的新增功能
    从零开始学Typescript-类型注解
    从零开始学Typescript-第一个TS程序
    从零开始学Typescript-安装Typescript
    从零开始学VUE-创建VUE应用
  • 原文地址:https://www.cnblogs.com/bluewelkin/p/4297784.html
Copyright © 2011-2022 走看看