编译PHP报错configure error Cannot find libmysqlclient und
解决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 开发库。如果遇到其他错误或需要进一步帮助,请随时查询或寻求专业支持。
编程语言
- 编译PHP报错configure error Cannot find libmysqlclient und
- jQuery实现根据生日计算年龄 星座 生肖
- jQuery超赞的评分插件(8款)
- laravel框架select2多选插件初始化默认选中项操作示
- mssql 高效的分页存储过程分享
- Js查找字符串中出现次数最多的字符及个数实例解
- laravel 操作数据库常用函数的返回值方法
- 如何理解Vue的作用域插槽的实现原理
- asp.net mvc验证码类使用
- 详解AngularJS跨页面传值(ui-router)
- PHP通过内置函数memory_get_usage()获取内存使用情况
- SQL语句实现查询并自动创建Missing Index
- vue综合组件间的通信详解
- Vue运用transition实现过渡动画
- asp 图片正则 替换,替换前检查图片是不是本地地
- 在Node.js应用中读写Redis数据库的简单方法