编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法

yipeiwu_com6年前Mysql基础

今天在64位Red Hat Enterprise Linux AS release 4 .7上编译PHP5.2.6出错,mysql是使用的RPM方式安装的,PHP编译代码如下:

./configure --prefix=/usr/local/php --with-mysql --with-apxs2=/usr/local/apache/bin/apxs --with-openssl --with-curl --enable-xml --with-mcrypt --with-ttf --enable-magic-quotes --enable-fastcgi --enable-mbstring --with-iconv --enable-mbstring --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --enable-sysvsem出现以下错误:checking for specified location of the MySQL UNIX socket... no
checking for MySQL UNIX socket location... no
configure: error: Cannot find libmysqlclient under /usr.
Note that the MySQL client library is not bundled anymore!

通过查找libmysqlclient,发现是在/usr/lib64/mysql/目录内的libmysqlclient.so.16.0.0做的软连接,PHP默认是去的 /usr/lib/搜索,所以没有找到.找到问题了就好解决了.

类似的问题还有:

/usr/lib/libjpeg.so -> /usr/lib64/libjpeg.so

解决方法:

1.

cp -rp /usr/lib64/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so

2.

/usr/lib64/libmysqlclient.so -> libmysqlclient.so.16.0.0/usr/lib/libmysqlclient.so -> /usr/lib64/libmysqlclient.so
checking whether to enable embedded MySQLi support… no
checking for mysql_set_server_option in -lmysqlclient… no
configure: error: wrong mysql library version or lib not found. Check config.log for more information

经过测试后, 发现如下解决方案:

(php-xxxxx为php文件名, 代表路径)

# cd /usr/local/src/php-xxxxx/ext/mysqli
# yum -y install mysql-devel
# /phpize
# ./configure –with-php-config= /php-config –enable-embedded-mysqli=shared –enable-shared
# make
# make install

这时屏幕会打印mysqli.so生成的路径, 在php.ini里加载就好啦

/usr/bin/ld: cannot find -lmysqlclient

相关文章

PHP mysql与mysqli事务使用说明 分享

mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。 应用比较多的地方是 mysqli的事务。 比如下面的示例: 复制代码 代码如下: $mysqli =...

Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)

Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)

由于换电脑或重装系统后常需要重新搭建PHP环境,此次简单记录一下Windows下搭建PHP环境的过程,具体步骤可以参照网上资料 准备工作: Windows下手工搭建PHP环境需要先下载相...

解决了Ajax、MySQL 和 Zend Framework 的乱码问题

问题: 在 Google Map 上用 Ajax 以 get 方式向服务器传递数据时,服务器端显示为 url 乱码, Zend Framework 向 MySQL 存储数据为乱码,但是提...

PHP开发者常犯的10个MySQL错误更正剖析

1.使用MyISAM而不是InnoDB   完全错误,反驳理由:   首先原文说MyISAM是默认使用的,而实际上到了MySQL 5.5.x,InnoDB已经成为了默认的表引擎。   另...

php中数据库连接方式pdo和mysqli对比分析

1)总的比较   PDO MySQLi 数据库支持 12种不同的...