我的电脑是Ubuntu 14.04 LTS, 自己手工编译php5.6, 打开ZEND_EXTRA_LIBS='-liconv'时, 发现没有安装libiconv, 也就是编码转换的库, 所以百度该库的安装方法, 如下:

  1. 下载:# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
  2. 解压:
    $ tar -zxvf libiconv-1.14.tar.gz
    $ cd libiconv-1.14.1
  3. 安装:
    $ ./configure --prefix=/usr/local
    $ make
    # make install

不过我make的时候出现了一个问题:

n file included from progname.c:26:0:
./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
^
make[2]: *** [progname.o] Error 1
make[2]: Leaving directory `/home/freeman/Downloads/libiconv-1.14_2/srclib'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/freeman/Downloads/libiconv-1.14_2/srclib'
make: *** [all] Error 2

原因未明, 应该是软件的bug吧, 后来百度找到了解决方法, 整理如下~

    1. 切换到srclib目录下:
      $ cd srclib
    2. 修改stdio.in.h文件:
      $ gedit stdio.in.h
    3. 定位到
      _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

      这一行, 改成:
      #if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
       _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
      #endif

      注意粘贴完下面有两行#endif, 别少复制了一行#endif, 改完是这个样子滴~别忘了保存~
#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif
#endif

保存, make就可以了, make install完别忘了

# ldconfig

记下来, 下次就不会忘记了~~