Home >Backend Development >PHP Tutorial >解决php5.2与mysql兼容问题

解决php5.2与mysql兼容问题

WBOY
WBOYOriginal
2016-06-20 12:33:011014browse

   最近在做一键安装包(LAMP、LAMP)--适用于阿里云小白的产品。过程中,遇到一个问题,在Ubuntu14.04系统上,测试Apache2.2+php5.2+mysql5.1 ,编译安装php出现了问题。

报错内容:

ext/zip/lib/.libs/zip_dirent.o: In function `memset':/usr/include/x86_64-linux-gnu/bits/string3.h:81: warning: memset used with constant zero length parameter; this could be due to transposed parametersext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_disable_reads_from_master':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:44: undefined reference to `mysql_disable_reads_from_master'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_disable_rpl_parse':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:60: undefined reference to `mysql_disable_rpl_parse'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_enable_reads_from_master':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:77: undefined reference to `mysql_enable_reads_from_master'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_enable_rpl_parse':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:94: undefined reference to `mysql_enable_rpl_parse'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_master_query':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:112: undefined reference to `mysql_master_query'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_rpl_parse_enabled':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:131: undefined reference to `mysql_rpl_parse_enabled'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_rpl_probe':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:148: undefined reference to `mysql_rpl_probe'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_rpl_query_type':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:169: undefined reference to `mysql_rpl_query_type'ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_slave_query':/root/sh-1.5.5/php-5.2.17/ext/mysqli/mysqli_repl.c:208: undefined reference to `mysql_slave_query'collect2: error: ld returned 1 exit statusmake: *** [sapi/cli/php] Error 1

    对于这个问题,我是各种百度Google,没有找到解决办法,唯一看到就是说是mysql版本bug。没办法,去找mysql5.1bug相关信息,才知道需要改编译文件。

    php在编译时,不要加 --with-mysqli这个参数,先把php编译安装好,只是不能喝mysql结合。然后,修改php安装包下的文件ext/zip/lib/zip_dirent.c把memset(&tm, sizeof(tm), 0);替换成memset(&tm, 0, sizeof(tm));  

然后 ,cd ext/mysqli/

   /php/bin/phpize
   ./configure --with-php-config=/php/bin/php-config  --with-mysqli=/mysql-5.1.73/bin/mysql_config

   make

   make install

然后就OK了。


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn