今天在64位的CentOS 5.4中编译安装PHP时提示错误:configure: error: Cannot find libmysqlclient under /usr.
我的MySQL是RPM方式安装的,PHP编译参数。
经查,问题是64位系统中 libmysqlclient 默认安装到了 /usr/lib64 目录下
# ll /usr/lib64/libmysqlclient*
lrwxrwxrwx 1 root root 26 Nov 27 12:11 /usr/lib64/libmysqlclient_r.so -> libmysqlclient_r.so.16.0.0
lrwxrwxrwx 1 root root 26 Nov 27 12:11 /usr/lib64/libmysqlclient_r.so.12 -> libmysqlclient_r.so.12.0.0
-rwxr-xr-x 1 root root 262344 Nov 10 02:16 /usr/lib64/libmysqlclient_r.so.12.0.0
lrwxrwxrwx 1 root root 26 Nov 27 12:11 /usr/lib64/libmysqlclient_r.so.14 -> libmysqlclient_r.so.14.0.0
-rwxr-xr-x 1 root root 1239792 Nov 10 02:16 /usr/lib64/libmysqlclient_r.so.14.0.0
lrwxrwxrwx 1 root root 26 Nov 27 12:11 /usr/lib64/libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
-rwxr-xr-x 1 root root 2135464 Nov 10 02:16 /usr/lib64/libmysqlclient_r.so.15.0.0
lrwxrwxrwx 1 root root 26 Nov 27 12:11 /usr/lib64/libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
-rwxr-xr-x 1 root root 2084552 Nov 10 02:16 /usr/lib64/libmysqlclient_r.so.16.0.0
lrwxrwxrwx 1 root root 24 Nov 27 12:11 /usr/lib64/libmysqlclient.so -> libmysqlclient.so.16.0.0
lrwxrwxrwx 1 root root 24 Nov 27 12:11 /usr/lib64/libmysqlclient.so.12 -> libmysqlclient.so.12.0.0
-rwxr-xr-x 1 root root 253888 Nov 10 02:16 /usr/lib64/libmysqlclient.so.12.0.0
lrwxrwxrwx 1 root root 24 Nov 27 12:11 /usr/lib64/libmysqlclient.so.14 -> libmysqlclient.so.14.0.0
-rwxr-xr-x 1 root root 1231432 Nov 10 02:16 /usr/lib64/libmysqlclient.so.14.0.0
lrwxrwxrwx 1 root root 24 Nov 27 12:11 /usr/lib64/libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
-rwxr-xr-x 1 root root 2125928 Nov 10 02:16 /usr/lib64/libmysqlclient.so.15.0.0
lrwxrwxrwx 1 root root 24 Nov 27 12:11 /usr/lib64/libmysqlclient.so.16 -> libmysqlclient.so.16.0.0
-rwxr-xr-x 1 root root 2074376 Nov 10 02:16 /usr/lib64/libmysqlclient.so.16.0.0
[root@t96 ~]#
而/usr/lib 目录下没有相应文件,但是php编译时,要去 /usr/lib目录下查找,明白原因,解决办法也就相对简单了
ln -s /usr/lib64/libmysqlclient.* /usr/lib/
再查看/usr/lib 目录下
# ll /usr/lib/libmysqlclient*
lrwxrwxrwx 1 root root 28 Nov 27 23:29 /usr/lib/libmysqlclient.so -> /usr/lib64/libmysqlclient.so
lrwxrwxrwx 1 root root 31 Nov 27 23:29 /usr/lib/libmysqlclient.so.12 -> /usr/lib64/libmysqlclient.so.12
lrwxrwxrwx 1 root root 35 Nov 27 23:29 /usr/lib/libmysqlclient.so.12.0.0 -> /usr/lib64/libmysqlclient.so.12.0.0
lrwxrwxrwx 1 root root 31 Nov 27 23:29 /usr/lib/libmysqlclient.so.14 -> /usr/lib64/libmysqlclient.so.14
lrwxrwxrwx 1 root root 35 Nov 27 23:29 /usr/lib/libmysqlclient.so.14.0.0 -> /usr/lib64/libmysqlclient.so.14.0.0
lrwxrwxrwx 1 root root 31 Nov 27 23:29 /usr/lib/libmysqlclient.so.15 -> /usr/lib64/libmysqlclient.so.15
lrwxrwxrwx 1 root root 35 Nov 27 23:29 /usr/lib/libmysqlclient.so.15.0.0 -> /usr/lib64/libmysqlclient.so.15.0.0
lrwxrwxrwx 1 root root 31 Nov 27 23:29 /usr/lib/libmysqlclient.so.16 -> /usr/lib64/libmysqlclient.so.16
lrwxrwxrwx 1 root root 35 Nov 27 23:29 /usr/lib/libmysqlclient.so.16.0.0 -> /usr/lib64/libmysqlclient.so.16.0.0
再执行编译:
Generating files
updating cache ./config.cache
creating ./config.status
creating php5.spec
creating main/build-defs.h
creating scripts/phpize
creating scripts/man1/phpize.1
creating scripts/php-config
creating scripts/man1/php-config.1
creating main/php_config.h
creating main/internal_functions.c
creating main/internal_functions_cli.c
+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+
Thank you for using PHP.
