Table of Contents

背景

MySQL通过Homebrew安装完毕后本来想通过PHP验证下测试环境是否可用,代码搞完后发现怎么都运行不起来,通过命令行测试PHP出现异常:

  • /usr/local/opt/libunistring/lib/libunistring.2.dylib
  • /usr/local/Cellar/gd/2.3.3_4/lib/libgd.3.dylib

提示两个库文件不存在,完整报错信息如下:

uexf@uexfdeMacBook-Pro > php -v
dyld[90398]: Library not loaded: /usr/local/opt/libunistring/lib/libunistring.2.dylib
  Referenced from: <CBA139C3-2C27-3A55-9FB8-C4FD7B366E60> /usr/local/Cellar/libidn2/2.3.4/lib/libidn2.0.dylib
  Reason: tried: '/usr/local/opt/libunistring/lib/libunistring.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/libunistring/lib/libunistring.2.dylib' (no such file), '/usr/local/opt/libunistring/lib/libunistring.2.dylib' (no such file), '/usr/local/lib/libunistring.2.dylib' (no such file), '/usr/lib/libunistring.2.dylib' (no such file, not in dyld cache), '/usr/local/Cellar/libunistring/1.1/lib/libunistring.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/Cellar/libunistring/1.1/lib/libunistring.2.dylib' (no such file), '/usr/local/Cellar/libunistring/1.1/lib/libunistring.2.dylib' (no such file), '/usr/local/lib/libunistring.2.dylib' (no such file), '/usr/lib/libunistring.2.dylib' (no such file, not in dyld cache)
Library not loaded: /usr/local/opt/libtiff/lib/libtiff.5.dylib
  Referenced from: <DEB3AEE4-9CCB-37B9-A5F8-CA7E25BD3E4D> /usr/local/Cellar/gd/2.3.3_4/lib/libgd.3.dylib
  Reason: tried: '/usr/local/opt/libtiff/lib/libtiff.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/libtiff/lib/libtiff.5.dylib' (no such file), '/usr/local/opt/libtiff/lib/libtiff.5.dylib' (no such file), '/usr/local/lib/libtiff.5.dylib' (no such file), '/usr/lib/libtiff.5.dylib' (no such file, not in dyld cache), '/usr/local/Cellar/libtiff/4.6.0/lib/libtiff.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/Cellar/libtiff/4.6.0/lib/libtiff.5.dylib' (no such file), '/usr/local/Cellar/libtiff/4.6.0/lib/libtiff.5.dylib' (no such file), '/usr/local/lib/libtiff.5.dylib' (no such file), '/usr/lib/libtiff.5.dylib' (no such file, not in dyld cache)
[1]    90398 abort      bin/php -v

问题排查

果断卸载PHP 8.0,想着重装一下PHP或许能好,因此在命令行中执行:

brew reinstall php@8.0

执行到一半最终还是抛出了一样的异常,查看了下当前和libunistring有关的库文件都有哪些:

隐藏内容
本内容需评论后查看

安装完毕后再来查看下PHP版本:

uexf@uexfdeMacBook-Pro > php -v
dyld[36792]: Library not loaded: /usr/local/opt/libtiff/lib/libtiff.5.dylib
  Referenced from: <DEB3AEE4-9CCB-37B9-A5F8-CA7E25BD3E4D> /usr/local/Cellar/gd/2.3.3_4/lib/libgd.3.dylib
  Reason: tried: '/usr/local/opt/libtiff/lib/libtiff.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/libtiff/lib/libtiff.5.dylib' (no such file), '/usr/local/opt/libtiff/lib/libtiff.5.dylib' (no such file), '/usr/local/lib/libtiff.5.dylib' (no such file), '/usr/lib/libtiff.5.dylib' (no such file, not in dyld cache), '/usr/local/Cellar/libtiff/4.6.0/lib/libtiff.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/Cellar/libtiff/4.6.0/lib/libtiff.5.dylib' (no such file), '/usr/local/Cellar/libtiff/4.6.0/lib/libtiff.5.dylib' (no such file), '/usr/local/lib/libtiff.5.dylib' (no such file), '/usr/lib/libtiff.5.dylib' (no such file, not in dyld cache)
[1]    36792 abort      php -v

证明我们的猜测没问题,libunistring.2.dylib异常已经修复了,接下来还需要解决libtiff.5.dylib缺失问题,首先还是查看当前系统内存在的版本:

隐藏内容
本内容需评论后查看

执行完毕后再来看下PHP版本:

uexf@uexfdeMacBook-Pro > php -v
PHP 8.0.30 (cli) (built: Aug  5 2023 06:27:20) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies

搞定,收工!

声明
1.本网站名称: 优易先锋资源网
2.本站永久网址:https://res.uexf.com
3.本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长support@uexf.com
4.本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责
5.本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6.本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新