Mac使用brew安装PHP后终端运行报错libldap未加载求助
问题根因
你通过brew安装的PHP是基于openldap 2.4.x版本编译的,当前brew源默认提供的openldap已经升级到2.5/2.6等更高版本,库文件命名发生变化,导致PHP运行时找不到对应版本的动态库。
解决步骤
确认当前openldap的库版本
执行命令查看现有库文件:ls /usr/local/opt/openldap/lib/libldap*.dylib
若返回结果无libldap-2.4.2.dylib,而是libldap-2.5.x.dylib/libldap-2.6.x.dylib这类更高版本的文件,即可确认是版本不匹配问题。方案一:重装PHP(推荐,无兼容性风险)
执行命令让brew基于当前已安装的openldap版本重新编译PHP:
# 如果安装的是指定版本PHP,比如php7.4,将下方命令中的php替换为php@7.4即可 brew reinstall php
重装完成后执行php -v验证是否可正常运行。
- 方案二:创建软链接兼容(临时快速修复)
若暂时不想重装PHP,可直接给高版本openldap库创建旧版本名的软链接:
# 请将下方命令中的libldap-2.5.0.dylib、liblber-2.5.0.dylib替换为你第一步查到的实际存在的库文件名 sudo ln -s /usr/local/opt/openldap/lib/libldap-2.5.0.dylib /usr/local/opt/openldap/lib/libldap-2.4.2.dylib sudo ln -s /usr/local/opt/openldap/lib/liblber-2.5.0.dylib /usr/local/opt/openldap/lib/liblber-2.4.2.dylib
创建完成后再次执行PHP命令验证即可。
- 额外排查:确认ohmyzsh路径配置
若上述操作后仍无效,编辑~/.zshrc文件,确认PATH配置中/usr/local/bin的优先级高于系统自带PHP路径,修改完成后执行source ~/.zshrc生效即可。
内容的提问来源于stack exchange,提问作者ASHafizullah
相关产品推荐
相关产品推荐

