Mac上安装Swoole本质是编译PHP扩展,需匹配PHP版本(≥7.2)、装齐autoconf等工具、绕过/usr/include限制、正确配置php.ini;先用which php和php -v确认环境,再phpize编译源码,make install后在php.ini中添加extension=swoole.so并验证。

macOS 上安装 Swoole 4(或更新版本)本质是编译安装 PHP 扩展,不是装框架或 Composer 包。关键在于匹配你当前的 PHP 版本、补齐编译工具链、正确配置 php.ini,并绕过 macOS Catalina 及之后系统对 /usr/include 的限制。
确认 PHP 环境和基础依赖
先检查你用的是哪个 PHP:
- 运行
which php和php -v,确认版本 ≥ 7.2(Swoole 4 要求 PHP ≥ 7.1) - 运行
php-config --extension-dir记下扩展存放路径,后面要用 - 确保已安装 Xcode Command Line Tools:
xcode-select --install - 安装必要工具:
brew install autoconf automake libtool pkg-config
下载并编译 Swoole 源码
推荐从 GitHub 下载稳定版源码(如 v4.8.15 或最新 v4.x):
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- 解压后进入目录:
cd swoole-src-4.x.x - 执行
phpize—— 若报Cannot find autoconf,说明autoconf没装好,重装即可 - 运行配置命令(启用常用特性):
./configure --enable-openssl --enable-http2 --enable-mysqlnd - 编译安装:
make && sudo make install
成功后会提示类似:Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20220829/
启用扩展并验证
找到你正在使用的 php.ini 文件(php --ini 显示 Loaded Configuration File):
- 在文件末尾添加一行:
extension=swoole(如果swoole.so不在默认扩展目录,写绝对路径,例如extension=/usr/local/lib/php/extensions/no-debug-non-zts-20220829/swoole.so) - 重启 Web 服务(如 Apache:
sudo apachectl restart;或 PHP-FPM:brew services restart php) - 验证是否加载:
php -m | grep swoole或php --ri swoole—— 应显示版本号、协程、SSL 等支持项
常见卡点与修复
macOS 10.15+(Catalina 及以后)默认不提供 /usr/include,会导致 phpize 失败:
- 先删掉旧的软链接(如有):
sudo rm -f /usr/include - 重建指向 SDK:
sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include /usr/include - 若仍报错“Operation not permitted”,需临时禁用 SIP:重启进恢复模式 → 终端执行
csrutil disable→ 重启 → 完成后再csrutil enable - MAMP/XAMPP 用户注意:必须修改其自带 PHP 对应的
php.ini,且phpize和php-config也要用 MAMP 目录下的完整路径

















