PHP配置编译参数报错:Cannot find libmysqlclient_r under /usr/local/mysql

回复 收藏
本帖最后由 kevinjin 于 2016-8-28 15:26 编辑

LAMP环境:x86_64, mysql 5.7.13, php 5.4.37, httpd-2.4.20

问题:
mysql初始化完成以及apache安装完成后,配置php的编译参数时会产生这样的错误信息:
configure: error: Cannot find libmysqlclient_r under /usr/local/mysql.
Note that the MySQL client library is not bundled anymore!

解决方法:
在编译的时候,不写mysql的路径,而使用mysqlnd代替
./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-config-file-path=/usr/local/php/etc  \
--with-mysql=mysqlnd \
--with-libxml-dir \
--with-libdir=lib \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-zlib-dir \
--with-bz2 \
--with-openssl \
--with-mcrypt \
--enable-soap \
--enable-gd-native-ttf \
--enable-mbstring \
--enable-sockets \
--enable-exif \
--disable-ipv6
奇怪的是在LNMP的情况下指定--with-mysql=/usr/local/mysql, 配置过程中就一点问题也没有


2016-08-28 14:35 举报
已邀请:
0

小路55

赞同来自:

因为在编译APACHE的时候,使用--with-mpm模块,所以就必须在编译MYSQL的时候加上--enable-thread-safe-client.参数

如果使用二进制包的mysql的话,可以在mysql/lib中做一个libmysqlclient_r.so 的软链接

0

小路55

赞同来自:

5.2版本以后的php里内置了依赖的mysql源码,所以使用--with-mysql=mysqldnd可以顺利通过。nginx编译使用外部mysql依赖,其实都是依赖libmysqlclient.so这个包,只是不同的命名。在lib目录下做一个软链接即可

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: