php -v返回dyld:库未加载:/usr/local/opt/readline/lib/libreadline.7.dylib

时间:2019-03-10 23:13:30

标签: php macos

我正在尝试安装Valet,但由于错误,我从brew上卸载了php,现在我重新安装了php,如果我转到apache上的phpinfo()文件,我可以看到

  

PHP版本7.1.23

但是如果我在控制台上执行php -v或其他php命令,我会得到:

  

dyld:未加载库:   /usr/local/opt/readline/lib/libreadline.7.dylib引用自:   / usr / local / bin / php原因:找不到映像中止陷阱:6

我在Mac Os Sierra上

3 个答案:

答案 0 :(得分:6)

有两种方法可以尝试解决此问题:

$ brew link readline

或者也许:

$ brew link readline --force

如果这不起作用,请尝试:

$ cd /usr/local/opt/readline/lib/
$ ln -s libreadline.dylib libreadline.7.dylib

Github Discussion : libreadline (image not found)

答案 1 :(得分:2)

对我来说,我已经安装了php 5.4,但是升级到php 7.3却对我有效。

brew install php@7.3

然后,您可能需要在路径中添加新的php版本。这基本上意味着,当您加载外壳程序时,它知道在哪里找到所使用文件的路径。对我来说,由于我使用的是zshrc,因此该命令为:

echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.zshrc

对于您来说,如果您在bash配置文件中拥有所有路径和别名,则命令将改为以下命令:

echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.bash_profile

然后,您需要做的只是来源zshrc或bash_profile文件,或者关闭该选项卡并打开一个新选项卡。源命令基本上说“嘿,请确保您具有我的别名和路径信息的更新列表”。当您打开新外壳时,自然会发生这种情况,但是您可以使用以下命令来强制执行该操作:

source ~/.bash_profile

然后它对我有用。祝好运。

答案 2 :(得分:1)

尝试一下:

$ cd /usr/local/opt/readline/lib/
$ ln -s libreadline.dylib libreadline.7.dylib

然后:

brew unlink readline && brew link --force readline