简体   繁体   中英

Can't open PHP, dyld: Library not loaded

I am aware there are many other questions related to this error, but I have tried all the answers and nothing worked.

Full error

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

When did the error occur?

Right after updating Ruby to 2.6.3 via RVM.

Whenever I enter "php" into the terminal the error appears.

Steps taken

  • Basic steps: Restart Macbook, opened new terminal window.
  • Uninstall/Reinstall: Node, Openssl, libpng, Ruby
  • Update/Upgrade: brew
  • Unlinked/Linked: libidn, autoconf
  • Given myself all rights via chown -R /usr/local
  • OpenSSL: $ sudo rm /usr/bin/openssl, brew reinstall openssl@1.1
  • Brew cleanup
  • Reinstalled PHP

Versions

  • Mac OS Mojave 10.14.6

  • PHP 7.4

  • Ruby 2.6.3p62
  • RVM 1.29.9

When running 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)

Any ideas on how to solve this error?

I will answer my own question for others who might run into a similar issue

After having uninstalled and reinstalled every single keg of brew I found the following solution:

  1. Uninstall PHP
  2. Run brew cleanup
  3. Check your /usr/local/opt folder for any folders named php
  4. Delete the folder (in my case it was called 'php@7.1')
  5. Open a new terminal window
  6. Run 'brew search php' in the terminal and make sure no php keg is installed.
  7. Simply type 'php -v' in the terminal. For me this showed a version number, indicating that php was (at one point) installed without brew. You can choose to uninstall this version or update it to the newest version.

Conclusion

In my case I believe it was simply that PHP 7.1 was already installed and I installed a 2nd version (7.4) via brew.

The error 'Referenced from: /usr/local/opt/php@7.1/bin/php' was obviously searching for something in this folder and after deleted it, the error stopped.

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

brew reinstall php

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM