无法打开 PHP,dyld:库未加载

Fin*_*inn 3 php macos homebrew openssl

我知道还有许多其他与此错误相关的问题,但我已经尝试了所有答案,但没有任何效果。

完全错误

dyld: Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib
Referenced from: /usr/local/opt/php@7.1/bin/php
Reason: image not found
Abort trap: 6
Run Code Online (Sandbox Code Playgroud)

错误何时发生?

在通过 RVM 将 Ruby 更新到 2.6.3 之后。

每当我在终端中输入“php”时,就会出现错误。

采取的步骤

  • 基本步骤:重启Macbook,打开新的终端窗口。
  • 卸载/重新安装:Node、Openssl、libpng、Ruby
  • 更新/升级:酿造
  • 未链接/已链接:libidn、autoconf
  • 通过 chown -R /usr/local 赋予自己所有权利
  • OpenSSL: $ sudo rm /usr/bin/openssl, brew 重新安装 openssl@1.1
  • 酿造清理
  • 重装 PHP

版本

  • Mac OS Mojave 10.14.6

  • PHP 7.4

  • 红宝石 2.6.3p62
  • RVM 1.29.9

运行 Brew Doctor 时

Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and which additional flags to use when
compiling and linking.

Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew-provided
script of the same name. We found the following "config" scripts:
  /opt/local/bin/python2.7-config
  /opt/local/bin/curl-config
  /opt/local/bin/ncursesw6-config
  /opt/local/bin/pcre-config
  /opt/local/bin/ncurses6-config
  /opt/local/bin/pcap-config

Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected header files:
(here it posts all the /usr/local/include/node files, but the list exceeds character limitations)
Run Code Online (Sandbox Code Playgroud)

有关如何解决此错误的任何想法?

小智 14

就我而言,错误是

\n
\xe2\x9d\xaf php -v\ndyld[24982]: Library not loaded: /opt/homebrew/opt/libavif/lib/libavif.15.dylib\n  Referenced from: <87C1A268-34E4-396F-8BBC-D5591064E333> /opt/homebrew/Cellar/gd/2.3.3_5/lib/libgd.3.dylib\n  Reason: tried: '/opt/homebrew/opt/libavif/lib/libavif.15.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/libavif/lib/libavif.15.dylib' (no such file), '/opt/homebrew/opt/libavif/lib/libavif.15.dylib' (no such file), '/usr/local/lib/libavif.15.dylib' (no such file), '/usr/lib/libavif.15.dylib' (no such file, not in dyld cache), '/opt/homebrew/Cellar/libavif/1.0.1/lib/libavif.15.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/libavif/1.0.1/lib/libavif.15.dylib' (no such file), '/opt/homebrew/Cellar/libavif/1.0.1/lib/libavif.15.dylib' (no such file), '/usr/local/lib/libavif.15.dylib' (no such file), '/usr/lib/libavif.15.dylib' (no such file, not in dyld cache)\n
Run Code Online (Sandbox Code Playgroud)\n

卸载 PHP 还不够,还需要删除 gd 和 libavif。

\n

脚步:

\n
brew uninstall php\nrm -rf /opt/homebrew/etc/php\nbrew uninstall gd\nbrew uninstall libavif\nbrew install php\n
Run Code Online (Sandbox Code Playgroud)\n

最后,此时错误消失了

\n
\xe2\x9d\xaf php -v\nPHP 8.2.10 (cli) (built: Aug 31 2023 18:52:55) (NTS)\n
Run Code Online (Sandbox Code Playgroud)\n


Fin*_*inn 6

我会为可能遇到类似问题的其他人回答我自己的问题

卸载并重新安装每一桶啤酒后,我找到了以下解决方案:

  1. 卸载 PHP
  2. 运行 brew 清理
  3. 检查您的 /usr/local/opt 文件夹中是否有任何名为 php 的文件夹
  4. 删除文件夹(在我的例子中它被称为“php@7.1”)
  5. 打开一个新的终端窗口
  6. 在终端中运行 'brew search php' 并确保没有安装 php keg。
  7. 只需在终端中输入“php -v”即可。对我来说,这显示了一个版本号,表明 php 是(在某一时刻)安装的,没有 brew。您可以选择卸载此版本或将其更新到最新版本。

结论

就我而言,我认为这只是 PHP 7.1 已经安装,我通过 brew 安装了第二个版本 (7.4)。

错误 'Referenced from: /usr/local/opt/php@7.1/bin/php' 显然是在此文件夹中搜索某些内容,删除它后,错误停止了。


Dev*_*hon 6

我有类似的问题,我是这样解决的:

brew reinstall php
Run Code Online (Sandbox Code Playgroud)

  • 如果您没有使用最新的 PHP,请 `brew reinstall php@7.4` (3认同)