之前开发环境图简单,一直用的XAMPP,但是前几天切换到Mac Mini , M1芯片之后,发现安装扩展后,总是提示:

PHP Warning:  PHP Startup: Unable to load dynamic library 'swoole' 
(tried: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20210902/swoole (dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20210902/swoole, 0x0009): 
tried: '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20210902/swoole' (no such file), '/usr/local/lib/swoole' (no such file), '/usr/lib/swoole' (no such file)), /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20210902/swoole.so (dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20210902/swoole.so, 0x0009): 
tried: '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20210902/swoole.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/local/lib/swoole.so' (no such file), '/usr/lib/swoole.so' (no such file))) in Unknown on line 0
大致问题就是,XAMPP使用的是X86的编译方式,我们假如下载swoole或者其他扩展之后,默认使用的是ARM的方式编译的,编译后的so文件,就没有办法加载到php中。

通过网上找资料和尝试后,最终解决方案就是加上arch -x86_64

解决方法:

arch -x86_64 /Applications/XAMPP/bin/phpize
arch -x86_64 ./configure --with-php-config=/Applications/XAMPP/bin/php-config
arch -x86_64 make
arch -x86_64 sudo make install

此方法居然没有效果,最后放弃了,用pecl install swoole方式安装完成了。