通过 PECL 安装的 Redis PHP 扩展可以在 Mac M1 上运行吗?

Blu*_*ift 4 php redis apple-silicon apple-m1

Redis 服务器使用 Homebrew 成功运行brew services start redis。PECL Redis 安装程序似乎可以与 一起使用sudo pecl install redis ,并提供以下输出:

Build process completed successfully
Installing '/opt/homebrew/Cellar/php@7.4/7.4.28/pecl/20190902/redis.so'
install ok: channel://pecl.php.net/redis-5.3.7
Extension redis enabled in php.ini
Run Code Online (Sandbox Code Playgroud)

如果我使用php --ini,这就是输出:

Warning: PHP Startup: Unable to load dynamic library 'redis.so' (tried: /opt/homebrew/lib/php/pecl/20190902/redis.so (dlopen(/opt/homebrew/lib/php/pecl/20190902/redis.so, 0x0009): tried: '/opt/homebrew/lib/php/pecl/20190902/redis.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/redis.so' (no such file), '/usr/lib/redis.so' (no such file)), /opt/homebrew/lib/php/pecl/20190902/redis.so.so (dlopen(/opt/homebrew/lib/php/pecl/20190902/redis.so.so, 0x0009): tried: '/opt/homebrew/lib/php/pecl/20190902/redis.so.so' (no such file), '/usr/local/lib/redis.so.so' (no such file), '/usr/lib/redis.so.so' (no such file))) in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)

redis.so 库位于 /opt/homebrew/lib/php/pecl/20190902 中。

有什么方法可以让这个库在 Mac M1 上运行吗?

Shi*_*hur 14

您可以运行peclarch确保架构是arm64.

arch -arm64 sudo pecl install redis
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用我维护的酿造龙头(shivammathur/extensions)。

brew tap shivammathur/extensions
brew install redis@7.4
Run Code Online (Sandbox Code Playgroud)