M1芯片默认使用的arm64架构,可以使用如下命令查看:uname -a
当我安装了brew(https://www.cnblogs.com/rxbook/p/16377843.html),
再使用brew安装kafka、librdkafka的时候,都是没问题的,参考 https://www.cnblogs.com/rxbook/p/10877784.html
然后安装完PHP-rdkafka扩展的时候,也没报错,但是使用PHP -m 查看是否安装成功的时候 却出错了:
Warning: PHP Startup: Unable to load dynamic library 'rdkafka.so' (tried: /Applications/MxSrvs/bin/PHP/ext/rdkafka.so (dlopen(/Applications/MxSrvs/bin/PHP/ext/rdkafka.so, 0x0009): tried: '/Applications/MxSrvs/bin/PHP/ext/rdkafka.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))), /Applications/MxSrvs/bin/PHP/ext/rdkafka.so.so (dlopen(/Applications/MxSrvs/bin/PHP/ext/rdkafka.so.so, 0x0009): tried: '/Applications/MxSrvs/bin/PHP/ext/rdkafka.so.so' (no such file))) in UnkNown on line 0
大致意思就是已经安装了arm64架构的,但是需要x86_64架构的。折腾了五六个小时,总算找到了解决方案,必须得记录下来,以备后用:
https://blog.csdn.net/qq_41017902/article/details/123458089
在终端中执行命令arch -x86_64 zsh
来切换架构,切换之后,再查看 uname -a :
然后再重新安装x86的brew、kafka、librdkafka、PHP-rdkafka
参考:http://t.zoukankan.com/jinzhao-p-15662791.html
X86 HomeBrew
$ arch -x86_64 zsh
$ cd /usr/local && mkdir homebrew
$ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
Alias快捷别名(vim ~/.zshrc)
alias
ibrew='arch -x86_64 /usr/local/bin/brew'alias
izsh='arch -x86_64 zsh'alias
azsh='arch -arm64e zsh'
完了之后再重复上面的PHP-rdkafka的安装步骤就好了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。