php dyld:没有为 libldap 加载库

php dyld: Library not loaded for libldap

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

按照this (also 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 会引发相同的错误。

我尝试过的其他事情:

我该如何解决这个问题?

虽然我不确定为什么安装 Ruby 会导致这个问题,但我最终解决了这个问题:

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

此问题已在 https://github.com/Homebrew/homebrew-core/issues/32916

中讨论和跟踪

根据this issue,您需要安装openldaplibiconv

brew install openldap libiconv

我试过了,它适用于我的系统。我最初缺少 PHP intl 扩展名。

如果您有两个 PHP 运行 通过 brew 以及一个 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

它对我有用:

brew reinstall openldap

尝试以上所有解决方案后。最后卸载并重新安装对我有用。

brew uninstall php

brew install php

我特别需要卸载有问题的版本。您可以从看起来像这样的行中获取这个损坏的版本:

Referenced from: /usr/local/Cellar/php@7.1/7.1.23/bin/php

OP 的情况是 php@7.1。在我的例子中是 php@7.3。在我 运行 根据我的情况进行以下操作后,一切正常

brew uninstall php@7.3

无法通过brew install openldap libiconv解决的朋友, 试试下面的命令:

brew reinstall openldap
brew reinstall php@7.4
brew services restart php@7.4