XAMPP不支持SW-Engine,实际需求多为Swoole:需确认文档中swoole_http_server等关键词,通过php -m | grep swoole验证;Windows下须下载匹配PHP版本的NTS DLL并配置php.ini,但Swoole仅支持CLI模式,不可集成Apache,否则触发0xc0000005错误。

SW-Engine 不是 XAMPP 官方支持或内置的组件,也不是 PHP 标准发行版的一部分。它不属于 Apache、PHP、MySQL 或 phpMyAdmin 的任何子系统,XAMPP 控制面板里没有 SW-Engine 启动项,httpd.conf 和 php.ini 中也无相关默认配置。
如果你看到某企业级 PHP 应用文档要求“XAMPP 运行 SW-Engine”,大概率存在以下三种情况之一:
- 该应用实际依赖的是
Swoole(常被误写/口误为 “SW-Engine”),尤其是 v4+ 版本后广泛用于协程 HTTP 服务、WebSocket、异步任务; - 应用私有封装了一个叫
SW-Engine的定制模块(如某厂商基于 Swoole 或 Workerman 二次开发的闭源中间件),需单独部署; - 文档过时或术语混淆,把某种运行时容器(如 Docker + Swoole 镜像)简称为 “SW-Engine”。
怎么确认你真需要的是 Swoole 而不是 SW-Engine
- 检查应用文档中是否出现
swoole_http_server、Co::sleep()、go()、Swoole\Coroutine等关键词; - 运行
php -m | findstr swoole(Windows)或php -m | grep swoole(Linux/macOS),看是否已启用; - 查看应用入口脚本里是否有
new Swoole\Http\Server或Swoole\Coroutine\run。
若确认是 Swoole,XAMPP 默认不带,必须手动编译或安装扩展。
在 XAMPP 中启用 Swoole 扩展(Windows)
XAMPP 自带的 PHP 是 VC15/VC16 编译的线程安全(TS)版本,Swoole 官方只提供非线程安全(NTS)预编译 DLL,直接放 ext/ 会报错:PHP Startup: Unable to load dynamic library 'swoole'。
立即学习“PHP免费学习笔记(深入)”;
正确做法:
- 下载匹配版本的 NTS DLL:去 https://www.php.cn/link/fe8bda208e5367b92d4b9d8bf5968208 ,选对应 PHP 版本(如 PHP 8.2 TS → 实际要下 8.2 NTS 的 DLL);
- 修改 XAMPP 的
php.ini(路径如C:\xampp\php\php.ini):extension=php_swoole.dll swoole.enable_coroutine=1 swoole.display_errors=1
- 关键一步:XAMPP 的 Apache 使用的是 TS 版 PHP,但 Swoole 只支持 NTS —— 所以你无法在 Apache 下直接用 Swoole;它只能用于 CLI 模式(即命令行启动服务);
- 验证:打开 cmd,执行
php -v和php --ri swoole,输出扩展信息才算成功。
为什么不能把 Swoole 当成 Apache 模块跑
- Apache 的 mpm_winnt 模块是多进程模型,每个请求 fork 一个线程,而 Swoole 是单进程事件循环 + 协程调度,两者内存模型和生命周期管理完全冲突;
- 强行加载会导致 Apache 启动失败,或在访问时出现
0xc0000005错误(访问冲突); - 所有基于 Swoole 的服务(如 HTTP 服务器、TCP 服务器)必须脱离 Web 服务器独立运行:
php your-server.php
而不是通过<a href="https://www.php.cn/link/f9624b39697ee42ee3009e038e37cd74">https://www.php.cn/link/f9624b39697ee42ee3009e038e37cd74</a>访问。
企业应用部署时的真实分工
- Apache(XAMPP 提供):只负责静态资源、传统 PHP-FPM 接口(如后台管理页、phpMyAdmin)、HTTPS 终止;
- Swoole(单独启动):监听另一个端口(如
0.0.0.0:9501),处理实时消息、长连接、定时任务; - 前端或网关层(如 Nginx)做反向代理,把
/api/ws转给 Swoole,把/admin转给 Apache。
这种分离架构才是生产环境常见做法,硬塞进 XAMPP 一体运行反而增加故障点。
XAMPP 本质是教学/轻量开发工具,它的设计没考虑 Swoole 类扩展的兼容性。真正要跑企业级 Swoole 应用,建议用 Docker 或独立部署 PHP + Swoole + Nginx 组合 —— XAMPP 只用来搭配套管理后台或调试接口。



















