Mac 的 M 系列芯片安装扩展错误

我用的是 MAMP 集成环境,然后我编译安装 Swoole、Redis 扩展过程都很顺利,但是当 php -m 时他就是没有,然后我查看 php 的错误日志。

Mac 的 M 系列芯片安装扩展错误

发现报错如下:

Mac 的 M 系列芯片安装扩展错误

[09-Mar-2023 13:33:06 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/swoole.so (dlopen(/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/swoole.so, 0x0009): tried: '/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/swoole.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/swoole.so' (no such file), '/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/swoole.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))), /Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/swoole.so.so (dlopen(/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/swoole.so.so, 0x0009): tried: '/Applications/MAMP/bin/php/php7.4.33 in Unknown on line 0
[09-Mar-2023 13:33:06 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'redis.so' (tried: /Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/redis.so (dlopen(/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/redis.so, 0x0009): tried: '/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/redis.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/redis.so' (no such file), '/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/redis.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))), /Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/redis.so.so (dlopen(/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/redis.so.so, 0x0009): tried: '/Applications/MAMP/bin/php/php7.4.33/lib/php in Unknown on line 0

其实最主要的是 but is an incompatible architecture (have 'arm64', need 'x86_64')) 这一行,需要的是 x86 架构的,但编译出的是 arm 架构的。

解决办法就是在编译命令前面加个 arch -x86_64,指定编译 x86架构的。

arch -x86_64 phpize
arch -x86_64 ./configure --with-php-config=/Applications/MAMP/bin/php/php7.4.33/bin/php-config --enable-openssl --enable-http2 --enable-swoole-json --enable-swoole-curl --with-openssl-dir=/usr/local/Cellar/openssl@1.1/1.1.1q
arch -x86_64 make && make install

这样就解决了。

问题是我在之前电脑 M1 的芯片也没加这个,不知道为什么 M2Pro 又需要加,忘记当时老电脑是配置什么了。

参考文章

blog.csdn.net/pianzhou2021/article...

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!