[Linux 相关文章] 编译安装PHP出现configure: error: MySQL configure failed. Please check config.log的解决方法

Mar 28th, 2008

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2008/03/28/php-make.html

 

好久没有编译安装过php了,为了玩nginx.没法子,编译一次来测试.我加的编译的参数是:

  1. # ./configure –prefix=/usr/local/php –with-config-file-path=/etc –with-gd –enable-gd-native-ttf –with-mysql –with-iconv-dir –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir –enable-xml –disable-debug –disable-rpath –enable-discard-path –enable-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –with-curlwrappers –enable-mbregex –enable-fastcgi –enable-force-cgi-redirect –enable-mbstring –with-mcrypt

没想到老是出下面的错

checking for mysql_close in -lmysqlclient… no
checking for mysql_error in -lmysqlclient… no
configure: error: mysql configure failed. Please check config.log for more information.

google很久,都讲下面的答案,晕,这种也叫答案,那我不是还要重新编译一次mysql.这个php就很麻烦了.这个一定不对.

网查找说:安装PHP的时候没有指定一下mysql的安装目录.但是我已经指定了,所以这个说法是错误的,其实主要原因是 mysql-level没有装,也就是mysql的版本不对,应该换
mysql-max-5.0.21版本(包含所有mysql相关内容的软件包)

/usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.so when searching for -lmysqlclient
/usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.a when searching for -lmysqlclient
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status
configure: failed program was:
#line 59854 "configure"
#include "confdefs.h"

在看看config.log提示的错….哦.原来是版本有问题.想起我的系统都是X86的,lib都是64位的.所以解决方法很容易.
这个libmysqlclient.a library 是在 /usr/lib64/mysql, 不是在 /usr/lib/mysql.
所以可以做下面的方法来解决

  1. #export LDFLAGS=-L/usr/lib64/mysql

OR
请将Makefile里面的
-L/usr/lib/mysql
改为
-L/usr/lib64/mysql

 

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
  1. jack
    Mar 31st, 2008 at 14:20
    Reply | Quote | #1

    这个问题用mysql官网的rpm包在64的机器都会出这个问题的,其实可以编辑php的configure 文件找到下面的这一段 ,大概是在 75600 多行,加上lib64 lib64/mysql就可以的啦,编辑Makefile后再configure又没了,修改好configure之后再打个包以,后用就可以一直用重新打包后的这个PHP安装包了。

    for i in $PHP_LIBDIR $PHP_LIBDIR/mysql lib64 lib64/mysql; do

    str=”$MYSQL_DIR/$i/lib$MYSQL_LIBNAME.*”
    for j in `echo $str`; do
    if test -r $j; then
    MYSQL_LIB_DIR=$MYSQL_DIR/$i
    break 2
    fi
    done

    done