必须重启php服务才能加载swoole扩展,仅重载配置无效;需同时修改cli和fpm的php.ini(按pecl提示写extension=swoole或extension=swoole.so),并分别验证cli(php --ri swoole)和web(phpinfo())环境。

宝塔面板安装Swoole扩展后,PHP进程不会自动加载新扩展,必须通过特定方式重启服务才能让extension=swoole.so真正载入运行时环境,否则phpinfo()和Web请求中始终不显示Swoole模块。
确认扩展已写入配置文件
先检查CLI和FPM两套php.ini是否都添加了extension行:打开/www/server/php/82/etc/php.ini,末尾应有【extension=swoole.so】;再打开/www/server/php/82/etc/php-fpm.d/www.conf,查找php_admin_value[extension]字段,或在该文件末尾同样追加【extension=swoole.so】。若只改了一个,Web端必然失效。
注意:PECL安装新版Swoole(如5.1.6)后,终端提示的加载行可能是extension=swoole(无.so后缀),此时必须按提示原样写入,写成extension=swoole.so会报错找不到文件。
必须点「重启PHP」而非「重载配置」
登录宝塔面板 → 左侧「软件管理」→ 找到对应PHP版本(如PHP-82)→ 点击右侧「设置」→ 在顶部选项卡中点击「服务」→ 点击【重启】按钮。
Swoole 6.1.1 是一个专为 PHP 设计的高性能事件驱动并发网络引擎。作为稳定版,它修复了编译时对 zlib 依赖的缺失及 curl 模块的内存安全风险。该版本支持协程、多线程与多进程架构,内置 TCP/HTTP/WebSocket 服务器,能够显著提升 PHP 在微服务、实时通信等场景下的执行效率与并发能力。
「重载配置」仅重新读取ini参数,不重建PHP-FPM主进程,swoole.so根本不会被dlopen加载;只有「重启」会彻底终止所有worker进程并启动新实例,强制加载全部扩展。
分场景验证是否生效
第一步:验证CLI环境 → 终端执行/www/server/php/82/bin/php --ri swoole,出现版本号、enabled状态且无warning即表示CLI层成功。
第二步:验证Web环境 → 在网站根目录新建info.php,内容为<?php phpinfo(); ?>,浏览器访问该文件,Ctrl+F搜索“swoole”,确认表格中“swoole support”为enabled,且下方列出version、coroutine等字段。
第三步:排除缓存干扰 → 若info.php里没显示,但CLI验证通过,立即清空OPcache:宝塔面板 → PHP设置 →「禁用OPcache」→「重启PHP」→ 再开启OPcache → 再次重启PHP。OPcache会缓存旧的模块列表,导致phpinfo()显示滞后。










