跳转到主内容
极星编程网:以代码为星,赴技术山海!

XAMPP环境下安装Swoole扩展 XAMPP支持异步网络通信

XAMPP默认不带Swoole扩展,需手动源码编译安装:先确认PHP路径与版本,用XAMPP自带phpize和php-config配置,macOS M1/M2须加arch -x86_64前缀,编译后将swoole.so写入正确extension_dir并在/Applications/XAMPP/etc/php.ini中添加extension=swoole.so,最后分别验证CLI和Web层并重启Apache。 XAMPP 默认不带 Swoole 扩展,必须手动安装才能支持 WebSocket、TCP 服务等异步网络通信能力。直接启用
swoole.so
会失败,因为 XAMPP 的 PHP 编译路径、扩展目录和系统依赖都与标准 Linux 发行版不同,尤其在 macOS(M1/M2)或老旧 macOS 上更容易出错。 确认 XAMPP 中的 PHP 路径和版本 别急着下载源码或运行
phpize
,先搞清你实际用的是哪个 PHP —— XAMPP 常存在「CLI 用一个 PHP,Apache 用另一个」的问题。 打开终端,执行:
/Applications/XAMPP/bin/php -v
和
/Applications/XAMPP/xamppfiles/bin/php -v
,看输出是否一致 检查扩展目录位置:
/Applications/XAMPP/bin/php -i | grep extension_dir
,注意它指向的路径(常见如
/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20200930/
) macOS M1/M2 用户必须加
arch -x86_64
前缀调用工具,否则编译出的
swoole.so
无法加载(报错:
mach-o, but wrong architecture
) 源码编译安装(推荐,兼容性最强) PECL 在 XAMPP 下基本不可用,
pecl install swoole
会找不到
php-config
或写入错误路径。必须用 XAMPP 自带的工具链编译。 Swoole 6.1.1 Swoole 6.1.1 是一个专为 PHP 设计的高性能事件驱动并发网络引擎。作为稳定版,它修复了编译时对 zlib 依赖的缺失及 curl 模块的内存安全风险。该版本支持协程、多线程与多进程架构,内置 TCP/HTTP/WebSocket 服务器,能够显著提升 PHP 在微服务、实时通信等场景下的执行效率与并发能力。 下载 下载对应版本源码(例如
swoole-5.1.5.tgz
),解压后进入目录 执行:
arch -x86_64 /Applications/XAMPP/bin/phpize
(macOS M1/M2)或
/Applications/XAMPP/xamppfiles/bin/phpize
(Intel/macOS 旧版) 配置时严格指定 XAMPP 的
php-config
:
./configure --with-php-config=/Applications/XAMPP/bin/php-config --enable-openssl
make && sudo make install
,成功后会提示
swoole.so
安装到了哪个目录 —— 必须和上一步
extension_dir
输出路径一致 编辑
/Applications/XAMPP/etc/php.ini
(不是
xamppfiles/etc/php.ini
!XAMPP for Mac 的主配置在此),末尾添加:
extension=swoole.so
验证是否真正生效 重启 Apache 不够,XAMPP 的 CLI 和 Web 环境是分离的,得分别验证: 命令行验证:
/Applications/XAMPP/bin/php --ri swoole
,看到
enabled
和版本号才算 CLI 层 OK Web 层验证:建一个
info.php
,内容为
,浏览器访问,搜索 “ swoole ”,确认模块已加载且版本匹配 常见失败现象:
php -m | grep swoole
有输出但
phpinfo()
没显示 → 说明 CLI 和 Web 使用了不同
php.ini
,需检查 Apache 加载的是哪个配置文件(
phpinfo()
页面顶部明确写出) 最易被忽略的一点:XAMPP 的 Apache 启动时不会自动重载
php.ini
修改,改完必须点面板上的「重启 Apache」按钮(不是「重载配置」),否则
extension=swoole.so
形同虚设。

相关文章