make: *** [ext/mysqli/mysqli.lo] Error 1

本文详细记录了在编译安装PHP5.4过程中遇到的几个典型错误及解决方案,包括处理make过程中的libiconv.so.2缺失问题、解决phar.phar文件无法创建的问题等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译安装php 的时候, 执行make报错误

错误:make: *** [ext/mysqli/mysqli.lo] Error 1

[root@localhost php-5.4.9]# mkdir /usr/local/webserver/mysql/include/mysql

 [root@localhost php-5.4.9]# ln -s /usr/local/webserver/mysql/include/* /usr/local/webserver/mysql/include/mysql
 [root@localhost php-5.4.9]# make ZEND_EXTRA_LIBS='-liconv'

抛错:

Generating phar.phar
/usr/local/src/php-5.4.9/sapi/cli/php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
make: *** [ext/phar/phar.php] Error 127

解决的方法如下:

#vi /etc/ld.so.conf

在里面加上一行
/usr/local/lib

2.然后运行/sbin/ldconfig

#/sbin/ldconfig

编译make

#make ZEND_EXTRA_LIBS='-liconv'

抛错:

Generating phar.phar
chmod: cannot access `ext/phar/phar.phar': No such file or directory
make: [ext/phar/phar.phar] Error 1 (ignored)

Build complete.
Don't forget to run 'make test'.
此处可以忽略 不过解决办法如下

#cd  ext/phar/
#cp ./phar.php  ./phar.phar

然后到php5.4文件夹

#make ZEND_EXTRA_LIBS='-liconv'

#make test

#make install


### PHP 源码安装 `make` 报错解决方案 当执行 `make` 命令时,如果出现 `[Makefile:369: sapi/cgi/php-cgi] Error 1` 的错误,通常是因为某些依赖库未正确配置或缺失所致。以下是针对此问题的分析与解决方法: #### 可能原因 1. **缺少必要的开发库** 在编译过程中,可能会因为缺少特定的库文件而导致失败。例如,`libiconv` 或其他扩展所需的库可能未安装。 2. **环境变量设置不当** 配置阶段 (`./configure`) 中指定的一些路径可能存在错误,或者系统无法找到对应的库文件位置。 3. **编译器版本兼容性问题** 不同的操作系统和编译器版本可能导致编译过程中的冲突。 --- #### 解决方案 ##### 方法一:检查并安装缺失的依赖库 根据具体报错信息,可以尝试安装以下常见的依赖项: - 对于基于 RedHat/CentOS 的发行版: ```bash yum install libxml2-devel openssl-devel bzip2-devel libcurl-devel \ libjpeg-devel libpng-devel freetype-devel gmp-devel readline-devel \ libxslt-devel libmcrypt-devel recode-devel ``` - 对于基于 Debian/Ubuntu 的发行版: ```bash apt-get update && apt-get install -y build-essential libxml2-dev \ libssl-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev \ libpng-dev libfreetype6-dev libgmp-dev libreadline-dev \ libxslt1-dev libmcrypt-dev librecode-dev ``` 这些命令会安装大多数 PHP 扩展所需的核心库及其头文件[^1]。 --- ##### 方法二:手动调整 Makefile 文件 如果确认已经安装了所有必要库但仍报错,则可能是 `Makefile` 文件中链接选项存在问题。可以通过修改 `Makefile` 来解决问题: 1. 查找 `Makefile` 文件中涉及 `sapi/cgi/php-cgi` 的部分。 2. 添加 `-liconv` 到相应的链接选项字段(通常是 `EXTRA_LIBS` 或类似的变量)。例如: ```makefile EXTRA_LIBS += -liconv ``` 3. 保存更改后重新运行 `make`。 这种方法适用于因 `libiconv` 库丢失而引发的错误[^2]。 --- ##### 方法三:强制指定额外的链接库 在执行 `make` 命令前,通过环境变量显式传递附加的链接参数: ```bash export ZEND_EXTRA_LIBS='-liconv' make ``` 这种方式可以直接覆盖默认的链接行为,从而避免遗漏重要库的情况[^3]。 --- ##### 方法四:验证 configure 参数 回顾初始的 `./configure` 脚本调用,确保指定了正确的路径以及启用了必需的功能模块。例如: ```bash ./configure --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-mbstring \ --enable-xml \ --enable-fpm \ --enable-sockets \ --with-mysql=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-iconv=/usr/local/libiconv \ --with-libxml-dir=/usr \ --with-mcrypt \ --with-xsl ``` 注意其中 `/usr/local/libiconv` 是假设的自定义安装目录;实际操作需依据实际情况调整[^5]。 完成以上步骤后再依次执行: ```bash make clean make make test make install ``` --- ### 总结 通过对依赖关系、编译脚本及工具链的综合排查,能够有效定位并修复 `[Makefile:369: sapi/cgi/php-cgi] Error 1` 类型的问题。建议优先补充基础支持库,并结合具体情况灵活运用上述策略。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值