话说,苏南大叔逆时代潮流安装php56,在运行php56的时候,出现了个错误提示。大意就是libcrypto.1.0.0.dylib这个文件没有找到。那么,如何解决这个问题呢?

苏南大叔:php56报错缺少文件libcrypto.1.0.0.dylib,如何处理? - php-openssl-lib
php56报错缺少文件libcrypto.1.0.0.dylib,如何处理?(图3-1)

解决方案就是把本地的openssl切换为1.0系列,而不是目前的1.1系列。本文中的方案,存在前提条件,就是本地存在着使用brew安装过的openssl@1.0。本文测试环境:macphp56openssl@1.0.0r

报错信息

切换到php56之后,查看一下相关版本。执行命令:

php -v

您可能会看到下面类似的错误

dyld: Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib
  Referenced from: /usr/local/opt/php@5.6/bin/php
  Reason: image not found
Abort trap: 6

注意,查看里面的libcrypto.1.0.0.dylib字样,这里面的1.0.0决定了后续操作中的openssl的版本号。如果您看到的不是这个数字,也许您需要考虑更换一下后续解决方案命令中的版本号字样。

苏南大叔:php56报错缺少文件libcrypto.1.0.0.dylib,如何处理? - error-openssl-lib
php56报错缺少文件libcrypto.1.0.0.dylib,如何处理?(图3-2)

方案检测

本文的方案中,大家可以先检测一下,本地是不是存在一个低版本的openssl,检测方法,具体可以参见:

简单来说的话,这里可以查看下面的目录,下面有几个子目录就可以了。

/usr/local/Cellar/openssl/

苏南大叔:php56报错缺少文件libcrypto.1.0.0.dylib,如何处理? - openssl_dir
php56报错缺少文件libcrypto.1.0.0.dylib,如何处理?(图3-3)

解决方案

确定本地使用brew安装的openssl的具体版本号之后,就可以切换了。

brew switch openssl <version>

注意替换里面的<version>为您本地合适的版本号,比如:

brew switch openssl 1.0.0r

相关链接

  • nginx的类似错误的解决方案:

https://newsn.net/say/nginx-library-not-loaded.html

总结

在最后一步出现结果之前,苏南大叔是不能保证您肯定能解决问题的。而且本文的方案中存在多种限制条件,所以,喷子勿喷。不行的话,你就试试别的方案。更多苏南大叔的php相关博客文章,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   php    openssl

本站的忠实读者小伙伴,正在阅读下面这些文章: