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
会引发相同的错误。
我尝试过的其他事情:
- 我想也许它没有链接,所以我也尝试了:
brew unlink libldap && brew link libldap
- 但是 Homebrew 不支持 libldap
- 然后here,虽然与postgres无关,它确实讨论了
libldap
的问题并说通过brew install openldap
安装(我猜libldap
被称为openldap
到 Homebrew)- 安装正常但没有解决问题
我该如何解决这个问题?
虽然我不确定为什么安装 Ruby 会导致这个问题,但我最终解决了这个问题:
- According to this discussion、
libldap
在 Homebrew 中被称为 openldap
。 brew install openldap
然后 运行 php reinstall php71
。这正确链接了库
- 下一个问题是
libiconv
,幸运的是 brew install libiconv
很容易安装。重新运行 php install php71
解决了问题
此问题已在 https://github.com/Homebrew/homebrew-core/issues/32916
中讨论和跟踪
根据this issue,您需要安装openldap
和libiconv
。
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
我在我的 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
会引发相同的错误。
我尝试过的其他事情:
- 我想也许它没有链接,所以我也尝试了:
brew unlink libldap && brew link libldap
- 但是 Homebrew 不支持libldap
- 然后here,虽然与postgres无关,它确实讨论了
libldap
的问题并说通过brew install openldap
安装(我猜libldap
被称为openldap
到 Homebrew)- 安装正常但没有解决问题
我该如何解决这个问题?
虽然我不确定为什么安装 Ruby 会导致这个问题,但我最终解决了这个问题:
- According to this discussion、
libldap
在 Homebrew 中被称为openldap
。brew install openldap
然后 运行php reinstall php71
。这正确链接了库 - 下一个问题是
libiconv
,幸运的是brew install libiconv
很容易安装。重新运行php install php71
解决了问题
此问题已在 https://github.com/Homebrew/homebrew-core/issues/32916
中讨论和跟踪根据this issue,您需要安装openldap
和libiconv
。
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