编译PHP报错configure error Cannot find libmysqlclient und

网络编程 2025-03-28 20:24www.168986.cn编程入门

解决Linux上PHP编译错误:寻找丢失的libmysqlclient库

今天,我在一台运行着 64 位 Red Hat Enterprise Linux AS release 4.7 的机器上尝试编译 PHP5.2.6。我使用的 MySQL 是通过 RPM 方式安装的。在配置 PHP 编译环境时,我遇到了一个棘手的问题。

我的配置命令如下:

```bash

./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 \

--with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir \

--enable-sysvsem

```

在运行这个命令后,我遇到了一个错误:

```plaintext

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.so.16.0.0` 实际上位于 `/usr/lib64/mysql/` 目录下。PHP 默认是在 `/usr/lib/` 下寻找这个库,所以没找到。解决这个问题,我需要告诉 PHP 在哪里找到这个库。

除此之外,还可能会遇到类似的问题,比如 `libjpeg.so` 文件在不同的目录下。

解决方法:

将 `libmysqlclient.so.16.0.0` 复制到 `/usr/lib/` 目录下:

```bash

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

```

然后,你可能还会遇到这样的问题:在配置过程中,PHP 无法正确识别 MySQLi 支持或者找不到正确的 MySQL 库版本。这时,可以尝试以下步骤:

1. 进入 PHP 源代码的特定目录(这里的 `php-x` 代表你的 PHP 文件路径):

```bash

cd /usr/local/src/php-x/ext/mysqli

```

2. 安装 `mysql-devel` 包,这个包包含了编译 MySQL 相关的库所需的开发文件:

```bash

yum -y install mysql-devel

```

3. 使用 `phpize` 命令,然后重新配置和编译:

```bash

/phpize 注意这里的路径根据实际情况调整

./configure --with-php-config=/php-config --enable-embedded-mysqli=shared --enable-shared

make

make install

```

这样,应该就能解决 `configure error: Cannot find libmysqlclient under /usr/` 的问题了。在编译完成后,你会看到一个 `mysqli.so` 文件被生成,你只需在 `phpi` 中加载它即可。如果链接器报错找不到 `-lmysqlclient`,确保你的系统上已经安装了正确的 MySQL 开发库。如果遇到其他错误或需要进一步帮助,请随时查询或寻求专业支持。

上一篇:jQuery实现根据生日计算年龄 星座 生肖 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by