An error occurred when compiling PHP5.2.6 on 64-bit Red Hat Enterprise Linux AS release 4.7 today. MySQL was installed using RPM. The PHP compilation code is as follows:
./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!
By searching for libmysqlclient, I found that it was a soft connection made by libmysqlclient.so.16.0.0 in the /usr/lib64/mysql/ directory. PHP searches in /usr/lib/ by default, so it was not found. Found the problem It will be solved soon.
Similar questions include:
/usr/lib/libjpeg.so -> /usr/lib64/libjpeg.so
Solution:
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
After testing, the following solution was found:
(php-xxxxx is the php file name, representing the path)
# 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
At this time, the screen will print the path generated by mysqli.so, just load it in php.ini
/usr/bin/ld: cannot find -lmysqlclient