phpinfo() 看不到 swoole 通常是因为 web sapi 未加载正确 php.ini 或 extension=swoole 配置未生效,需确认 loaded configuration file 路径、extension_dir 正确性、php_swoole.dll 匹配性,并重启 apache。

phpinfo() 里看不到 Swoole?先确认是不是真没加载
不是所有“看不到”都等于“没装好”。phpinfo() 显示的是 Web SAPI(比如 Apache 或 Nginx)加载的配置,而你执行 php -v 或 php -m 看到的是 CLI 模式下的结果——两者可能用完全不同的 php.ini。所以第一步不是重装,是查清楚:当前 Web 服务到底读的是哪个配置文件。
打开一个 PHP 文件(如 info.php),写入:
<?php phpinfo(); ?>
在浏览器访问它,往上拉,找到 “Loaded Configuration File” 这一行,记下那个绝对路径。这就是 Apache/Nginx 实际读的 php.ini ——不是你编辑过的那个,也不是 CLI 下的。
- 如果这行显示为空或
none,说明 Web 服务根本没加载任何php.ini,扩展自然不会出现 - 如果路径指向
C:\xampp\php\php.ini,但你改的是C:\xampp\apache\conf\extra\phpini.conf,那改错地方了 - 常见陷阱:XAMPP 控制面板点 “Config → PHP (php.ini)” 打开的确实是
C:\xampp\php\php.ini,但 Apache 实际是否用它,得看httpd.conf里有没有PHPINIDir覆盖
extension=swoole 这行写对了吗?注意位置和拼写
phpinfo() 不显示 Swoole,90% 是因为 extension=swoole 没生效。不是加了就行,得满足三个硬条件:
- 必须写在 Web SAPI 对应的
php.ini里(再次强调:不是 CLI 的) - 不能写成
extension=php_swoole.dll或extension=swoole.so——Windows 下只认extension=swoole(PHP 自动补.dll) - 必须确保
extension_dir指向正确的目录,例如:extension_dir = "C:\xampp\php\ext";路径里不能有中文、空格,也不能漏掉引号(Windows 下建议加) - 别放在被注释的区块里(比如
;[extensions]下面一堆分号开头的行),要放在明确启用扩展的位置,比如;extension=openssl后面那一片
改完保存,**必须重启 Apache 服务**(XAMPP 面板上先 Stop 再 Start,别点 Restart)。
DLL 文件放对位置了吗?名字能改吗?
Windows 下 Swoole 扩展依赖 php_swoole.dll 文件,它必须严格匹配 PHP 版本、TS/NTS 类型和架构(x64/x86)。这个 DLL 不能随便放:
- 必须放进
extension_dir指向的目录,通常是C:\xampp\php\ext\(不是apache\bin\,也不是php\根目录) - 文件名必须是原样
php_swoole.dll——不能改成swoole.dll,也不能加版本后缀(如php_swoole-5.1.3.dll),否则extension=swoole找不到它 - 下载源必须是 windows.php.net/pecl,PECL 官网已不提供 Windows 二进制包;选包名含你 PHP 版本、NTS/TS、VC 编译器(如 vc15)、x64 的完整匹配项
例如:XAMPP 自带 PHP 8.1.22 NTS x64 → 应下 swoole-5.1.3-8.1-nts-vc15-x64.zip,解压取其中的 php_swoole.dll。
验证时别只信 phpinfo(),多路交叉检查
单靠 phpinfo() 判断失败容易误判。实际排查要三路并行:
- Web 端:
phpinfo()页面搜 “swoole”,看有没有模块标题和配置项 - CLI 端:
C:\xampp\php\php.exe -m | findstr swoole(Windows)或php -m | grep swoole(Linux/macOS),有输出才说明扩展加载成功 - 详细信息:
C:\xampp\php\php.exe --ri swoole,能打印版本、协程支持状态等才算真正就位
如果 CLI 能看到、Web 看不到,基本就是 Web SAPI 没读对 php.ini;如果两个都看不到,优先查 DLL 匹配性和 extension_dir 路径。最容易被忽略的是:XAMPP 某些旧版本会为 Apache 单独生成 php-apache.ini,或者 httpd.conf 里写了 PHPINIDir 指向了别的位置——这时候改 php.ini 根本没用。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











