一、php出现“make: *** [sapi/cli/php] Error 1”的原因
在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open'」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到 link 的 iconv 函式库参数。
二、php出现“make: *** [sapi/cli/php] Error 1”的解决办法
我需要先说明,我不能保证所有的办法都能够真正的适合你,因为博主我也百度、谷歌查了很多的资料才找到了适合我自己的解决办法,今天我就全部列出来吧!我相信总有一个是适合你的;
第一种办法:
进入你下载的php源码包,再编辑Makefile,在 EXTRA_LIBS = ..... -lcrypt 在最后加上 -liconv
命令如下:
cd /usr/local/php-5.6.31
vim Makefile
make
make install
第二种办法:
不需要再编辑Makefile,直接在make编译的时候加上-liconv
命令如下:
make ZEND_EXTRA_LIBS='-liconv'
ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/
或
make ZEND_EXTRA_LIBS='-liconv'
make install
第三种办法:
我们再make编译的时候先clean,再make以及make install
命令如下:
make clean
make
make install
第四种办法:
既然需要编译的时候需要liconv,我是否可以禁止它呢?
命令如下:
/configure --prefix=/usr/local/php --disabled-iconv
make
make install
第五种办法:
可能是找不到libxml路径;我们是否可以给它指定一个正确的路径呢?
命令如下:
/configure --prefix=/usr/local/php --with-libxml-dir=/usr/local/libxml
make
make install
实例分析我是如何解决php“make: *** [sapi/cli/php] Error 1“这个问题的?
虽然说网上查了很多的资料,但是有一些方法自己看一下就知道肯定是不适合自己的,上面5种办法,我只用了3种办法去做测试,结果成功的还是第三种办法;虽然说我用第三种办法make的时候依然报了“make: *** [sapi/cli/php] Error 1”,但是我继续make isntall;
1、是否安装成功我也不知道?我只是去了/usr/local下面看看是否有php5.6;
2、如果有则运行php-fpm;
3、如果php-fpm运行能成功,证明就OK了!
因此,我要提醒大家,在做任何编译安装的时候,一定要把make、make install走完再说,只要程序能运行,那就说明没问题,因为有些时候是服务器系统本身的问题?像我今天用的这个服务器就是centos5.1版本,而且还是32位的;
最后再大家附上我测试php5.5的详细错误代码:
- ext/gd/libgd/.libs/gdkanji.o: In function `do_convert':
- /usr/local/php-5.5.38/ext/gd/libgd/gdkanji.c:350: undefined reference to `libiconv_open'
- /usr/local/php-5.5.38/ext/gd/libgd/gdkanji.c:365: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/gd/libgd/gdkanji.c:381: undefined reference to `libiconv_close'
- ext/iconv/.libs/iconv.o: In function `_php_iconv_strlen':
- /usr/local/php-5.5.38/ext/iconv/iconv.c:690: undefined reference to `libiconv_open'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:713: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:747: undefined reference to `libiconv_close'
- ext/iconv/.libs/iconv.o: In function `_php_iconv_appendl':
- /usr/local/php-5.5.38/ext/iconv/iconv.c:401: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:438: undefined reference to `libiconv'
- ext/iconv/.libs/iconv.o: In function `_php_iconv_substr':
- /usr/local/php-5.5.38/ext/iconv/iconv.c:810: undefined reference to `libiconv_open'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:834: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:889: undefined reference to `libiconv_close'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:893: undefined reference to `libiconv_close'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:842: undefined reference to `libiconv_open'
- ext/iconv/.libs/iconv.o: In function `_php_iconv_mime_decode':
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1440: undefined reference to `libiconv_open'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1936: undefined reference to `libiconv_close'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1939: undefined reference to `libiconv_close'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1551: undefined reference to `libiconv_close'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1554: undefined reference to `libiconv_open'
- ext/iconv/.libs/iconv.o: In function `php_iconv_string':
- /usr/local/php-5.5.38/ext/iconv/iconv.c:512: undefined reference to `libiconv_open'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:524: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:542: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:553: undefined reference to `libiconv_close'
- ext/iconv/.libs/iconv.o: In function `_php_iconv_strpos':
- /usr/local/php-5.5.38/ext/iconv/iconv.c:938: undefined reference to `libiconv_open'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:966: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1080: undefined reference to `libiconv_close'
- ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_dtor':
- /usr/local/php-5.5.38/ext/iconv/iconv.c:2516: undefined reference to `libiconv_close'
- ext/iconv/.libs/iconv.o: In function `_php_iconv_mime_encode':
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1130: undefined reference to `libiconv_open'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1144: undefined reference to `libiconv_open'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1402: undefined reference to `libiconv_close'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1405: undefined reference to `libiconv_close'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1263: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1215: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1247: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1405: undefined reference to `libiconv_close'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1315: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1346: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:1389: undefined reference to `libiconv'
- ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor':
- /usr/local/php-5.5.38/ext/iconv/iconv.c:2542: undefined reference to `libiconv_open'
- ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_append_bucket':
- /usr/local/php-5.5.38/ext/iconv/iconv.c:2666: undefined reference to `libiconv'
- /usr/local/php-5.5.38/ext/iconv/iconv.c:2588: undefined reference to `libiconv'
- collect2: ld returned 1 exit status
- make: *** [sapi/cli/php] Error 1