编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
今天在64位RedHatEnterpriseLinuxASrelease4.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出现以下错误:checkingforspecifiedlocationoftheMySQLUNIXsocket...no checkingforMySQLUNIXsocketlocation...no configure:error:Cannotfindlibmysqlclientunder/usr. NotethattheMySQLclientlibraryisnotbundledanymore!
通过查找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 checkingwhethertoenableembeddedMySQLisupport…no checkingformysql_set_server_optionin-lmysqlclient…no configure:error:wrongmysqllibraryversionorlibnotfound.Checkconfig.logformoreinformation
经过测试后,发现如下解决方案:
(php-xxxxx为php文件名,代表路径)
#cd/usr/local/src/php-xxxxx/ext/mysqli #yum-yinstallmysql-devel #/phpize #./configure–with-php-config=/php-config–enable-embedded-mysqli=shared–enable-shared #make #makeinstall
这时屏幕会打印mysqli.so生成的路径,在php.ini里加载就好啦
/usr/bin/ld:cannotfind-lmysqlclient