php dyld:未为libldap

时间:2018-10-13 16:42:36

标签: php dyld

我在Mac OSX High Sierra上安装了ruby,由于某种原因,我的php安装现在遇到了问题。我在php 7.1上。

我遵循this(也是here)Github的建议,

brew update && brew reinstall php71

安装时,它在

处破裂
==> Pouring php@7.1-7.1.23.high_sierra.bottle.tar.gz
==> /usr/local/Cellar/php@7.1/7.1.23/bin/pear config-set php_ini /usr/local/etc/php/7.1/php.ini system

有错误:

dyld: Library not loaded: /usr/local/opt/openldap/lib/libldap-2.4.2.dylib
  Referenced from: /usr/local/Cellar/php@7.1/7.1.23/bin/php
  Reason: image not found
Warning: The post-install step did not complete successfully
You can try again using `brew postinstall php@7.1`

在终端机上输入php会引发相同的错误。

我尝试过的其他事情:

  • 我以为可能没有链接,所以我也尝试了:brew unlink libldap && brew link libldap-但是Homebrew不支持libldap
  • 然后,here与Postgres无关,但确实讨论了libldap的问题,并说要通过brew install openldap安装(我猜libldap被称为{{ 1}}到Homebrew)-此安装程序正常,但无法解决问题

我该如何解决?

5 个答案:

答案 0 :(得分:19)

根据this issue,您需要安装openldaplibiconv

brew install openldap libiconv

我尝试了它,并且它对我的系统有效。我最初缺少PHP intl扩展名。

答案 1 :(得分:3)

尽管我不确定为什么安装Ruby会导致此问题,但最终还是通过以下方式解决了该问题:

  • According to this discussionlibldap在Homebrew中称为openldapbrew install openldap然后运行php reinstall php71。这样可以正确链接库
  • 下一个问题是libiconv,幸运的是,这个问题很容易用brew install libiconv安装。重新运行php install php71解决了问题

答案 2 :(得分:1)

它对我有用:

brew reinstall openldap

答案 3 :(得分:0)

此问题已在https://github.com/Homebrew/homebrew-core/issues/32916上进行了讨论和跟踪

答案 4 :(得分:0)

如果您有两个通过 brew 运行的 PHP 和一个 XAMPP,则 .bash_profile 中的环境路径可能存在问题。

which php

尝试上面的命令来查看当前的 php 路径。如果不准确,请设置适当的路径并注释其他。

export PATH=/Applications/XAMPP/xamppfiles/bin:$PATH
#export PATH=”/usr/local/opt/php@5.6/bin:/usr/local/opt/php@5.6/sbin:$PATH