代码之家  ›  专栏  ›  技术社区  ›  omic

PHP配置错误:请使用--with iconv=<DIR>指定iconv的安装前缀

  •  17
  • omic  · 技术社区  · 10 年前

    我正在尝试在MAMP上配置PHP 5.5,下面是这篇文章:

    Having problems while try to install OAUTH with PECL in MAMP on mac OS lion .

    在我将下载的PHP文件夹移动到 MAMP/bin/php (我还尝试创建 /php5.5.14/include/php 如上文所述)并运行 ./configure .

    我收到一个错误:

    checking for iconv support... yes
    checking for iconv... no
    checking for libiconv... no
    configure: error: Please specify the install prefix of iconv with --with-iconv=< DIR >
    

    我可以在哪里“指定安装前缀”或如何解决此问题?

    谢谢

    4 回复  |  直到 7 年前
        1
  •  38
  •   Mark Fox    4 年前

    具有 Homebrew :

    brew install libiconv
    

    然后

    ./configure --with-iconv=$(brew --prefix libiconv)
    

    brew --prefix libiconv 通常计算为 /usr/local/opt/libiconv

        2
  •  10
  •   codewizard    10 年前

    请完全按照控制台中的错误说明进行操作。它正在寻找iconv,但找不到它。

    ./configure --with-iconv=pathToIconv
    

    我想我们可能应该通过运行“iconv-help”来检查iconv是否已安装。如果没有安装,您可以使用自制程序安装它,也可以将现有文件添加到PATH变量中。我不确定mamp在这种情况下是如何工作的。。如果机器上安装了iconv,PHP应该使用它。由于mamp包含自身的方式,它可能以一种奇怪的方式完全填充了这个依赖关系。据我所知,最好的做法是将iconv内置到php安装中,这样你就应该努力跟踪路径。据我所理解,你可以在没有iconv的情况下安装它,只要依赖关系得到满足,它就会按预期运行。

    ./configure --without-iconv
    
        3
  •  7
  •   jamix ghost28147    9 年前

    我用MacPorts安装了iconv,所以可执行文件位于 /opt/local/bin/iconv .指定 ./configure --with-iconv=/opt/local 成功了。

        4
  •  2
  •   Mehmet Gökalp    5 年前

    我正在使用phpbrew将iconv扩展安装到php中。

    当我尝试使用/usr/local/Cellar/libiconv/1.16安装iconv时

    phpbrew ext install iconv -- --with-iconv=/usr/local/Cellar/libiconv/1.16
    

    它返回错误:

    checking if awk is broken... no
    checking for iconv support... yes, shared
    checking for iconv... no
    checking for libiconv... no
    configure: error: Please specify the install prefix of iconv with --with-iconv=<DIR>
    

    它使用brew的iconv解决了问题:

    brew install homebrew/core/libiconv
    phpbrew ext install iconv -- --with-iconv=$(brew --prefix libiconv)
    

    结果:

    ===> Enabling extension iconv
    [*] iconv extension is enabled.
    Done.