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

5
我尝试安装Valet,因为犯了一个错误,我从brew卸载了php,现在我重新安装了php,如果我在apache上访问phpinfo()文件,我可以看到PHP版本7.1.23,但是如果我在控制台上执行php -v命令或其他php命令,我会得到以下信息:dyld: Library not loaded:/usr/local/opt/readline/lib/libreadline.7.dylibReferenced from:/usr/local/bin/php Reason:image not found Abort trap:6。我使用的是Mac Os Sierra操作系统。

这个https://dev59.com/tGEi5IYBdhLWcg3wN6Jt 可能会对你有所帮助。 - Amine KOUIS
3个回答

14

你可以尝试几种方法来解决这个问题:

$ brew link readline

或者也许:

$ brew link readline --force

如果那不起作用,尝试:

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

Github讨论:libreadline(找不到图像)


3
我也遇到了同样的问题,第一部分失败了(需要使用“--force”),第二部分没有解决问题,但第三部分解决了。 - Marius Hofert

2

对于我来说,我安装了PHP 5.4,但将其升级到PHP 7.3 对我有用。

brew install php@7.3

如果您需要使用新的PHP版本,那么您很可能需要将其添加到您的路径中。这基本上意味着当您加载Shell时,它知道在哪里查找您正在使用的文件的路径。对于我来说,因为我使用的是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

然后,你需要做的就是在终端中执行 source 命令来更新你的 zshrc 或者 bash_profile 文件,或者关闭当前终端窗口并打开一个新的。source 命令的作用是告诉终端重新加载你的别名和路径信息。当你打开一个新的终端时,这个命令会自动执行,但你也可以手动执行它:

source ~/.bash_profile

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


1

试试这个:

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

然后:

brew unlink readline && brew link --force readline

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接