要在宝塔面板上让 Laravel 项目真正跑在 Swoole 上,必须先装好 Swoole 扩展,再装 laravel-swoole 包,两步缺一不可——只装扩展,Laravel 还是走 PHP-FPM;只装包不装扩展,artisan 命令直接报错 Class 'Swoole\Http\Server' not found。

宝塔面板安装 Swoole 扩展
优先检查软件商店是否有对应 PHP 版本的 Swoole 选项,有就点安装;没有再走命令行。
第一步:登录宝塔 → 左侧「软件商店」→ 找到你当前 Laravel 使用的 PHP 版本(比如 PHP 81)→ 点右侧「设置」→ 切换到「安装扩展」选项卡。
第二步:在搜索框输入 【swoole】,若列表中出现“Swoole4”或“Swoole5”,直接点击「安装」。
第三步:安装完成后,必须点击「重启 PHP」服务(不是重载),否则扩展不生效。重载只会刷新配置,不会加载新 .so 文件。
第四步:验证是否装成功:在终端执行 /www/server/php/81/bin/php --ri swoole,看到输出含 enabled 和版本号(如 swoole => enabled、version => 5.1.5),说明 CLI 环境已就绪。
第五步:如果 Web 端仍报错(比如 phpinfo() 不显示 Swoole),说明 FPM 环境没生效——进入宝塔 → PHP 设置 → 配置文件,确认 extension=swoole.so 这一行在 ; extension= 区域之后、且未被注释,保存后再次「重启 PHP」。
Composer 安装 laravel-swoole 包
这一步必须在 Laravel 项目根目录下操作,不能在宝塔根目录或 /www/wwwroot 下随便找一个地方执行。
方法一:执行命令安装(推荐)cd /www/wwwroot/your-laravel-project && composer require swooletw/laravel-swoole:^2.12
方法二:指定版本安装(适用于 Laravel 10+ 或 PHP 8.2+ 环境)composer require swooletw/laravel-swoole:2.13.0
注意:2.13.0 起正式支持 PHP 8.2+ 和 Laravel 10,旧版可能触发 trait 冲突或协程兼容警告。
安装过程会自动注册服务提供者(Laravel 5.5+ 支持自动发现),无需手动修改 app.php。
发布并修改 Swoole 配置文件
安装完包后,必须发布配置才能控制监听端口、静态资源处理等关键行为。
第一步:执行 php artisan vendor:publish --tag=laravel-swoole,生成 config/swoole_http.php。
第二步:打开该文件,重点修改以下三项:'host' => env('SWOOLE_HTTP_HOST', '0.0.0.0'),'port' => env('SWOOLE_HTTP_PORT', 9501),'enable_static_handler' => true,
第三步:在 .env 文件中添加两行:SWOOLE_HTTP_HOST=0.0.0.0SWOOLE_HTTP_PORT=9501
【不要把 port 设为 80 或 443,这些端口需 root 权限,宝塔默认用 www 用户运行 PHP,会启动失败】
第四步:确认 public 目录路径正确:'document_root' => public_path(), 这行不能删,否则静态资源(CSS/JS)全部 404。
启动 Swoole HTTP 服务
启动前务必确保 Nginx/Apache 已停止监听 9501 端口,否则端口冲突导致服务起不来。
执行启动命令:php artisan swoole:http start
如果想后台运行并记录日志,加 -d 参数:php artisan swoole:http start -d
启动成功后,访问 http://你的域名:9501,应看到 Laravel 欢迎页;若提示 Connection refused,先执行 netstat -tuln | grep :9501 确认端口是否被占用。
服务启动后,所有请求将绕过 PHP-FPM,由常驻内存的 Swoole 进程直接处理——此时 php artisan serve 和 Nginx 的 fastcgi_pass 都不再参与本次请求链路。


















