只需确保php≥8.0、swoole≥5.0且扩展已启用,创建server.php并运行php server.php,浏览器访问http://127.0.0.1:9501即可看到“hello from swoole http server!”响应。

要用Swoole快速跑起一个能被浏览器访问的基础HTTP服务器,你不需要写框架、不依赖Nginx、也不用配路由——只要确保PHP已加载Swoole扩展,写一个文件、执行一条命令、打开浏览器就能看到响应内容。
确认Swoole扩展已启用
在终端运行 php -m | grep swoole,如果输出包含 swoole,说明扩展已就绪;若无任何输出,需先安装Swoole(如通过 pecl install swoole 或 Docker镜像内置版本)。
【必须满足】 PHP版本需 ≥ 8.0,且 Swoole 版本 ≥ 5.0(低于此版本可能缺少 Swoole\Http\Server 的完整方法支持)。
编写 server.php 文件
新建一个名为 server.php 的文件,粘贴以下代码:
<?php <br>$server = new Swoole\Http\Server("127.0.0.1", 9501);<br>$server->on("request", function ($request, $response) {<br> $response->header("Content-Type", "text/plain; charset=utf-8");<br> $response->end("Hello from Swoole HTTP Server!\n");<br>$server->start();
这行 $response->end() 是强制性收尾操作,漏掉会导致客户端一直等待、连接挂起;它不是可选的“锦上添花”,而是协议层面的必要动作。
Swoole 6.1.1 是一个专为 PHP 设计的高性能事件驱动并发网络引擎。作为稳定版,它修复了编译时对 zlib 依赖的缺失及 curl 模块的内存安全风险。该版本支持协程、多线程与多进程架构,内置 TCP/HTTP/WebSocket 服务器,能够显著提升 PHP 在微服务、实时通信等场景下的执行效率与并发能力。
启动服务并验证
第一步:在 server.php 所在目录执行 php server.php。
第二步:终端会停留不动,但提示已启动(无报错即成功)。
第三步:新开终端窗口,执行 curl http://127.0.0.1:9501 → 看到 Hello from Swoole HTTP Server! 即为通路。
第四步:浏览器访问 http://127.0.0.1:9501,页面显示相同文本。
服务运行中时,按 Ctrl+C 可终止进程。不要用 kill -9 强杀主进程,否则残留监听端口可能阻塞下次启动。
让服务支持 HTML 响应(可选增强)
方法一:直接改 end() 内容为 HTML 字符串$response->end("<h2 style="color:#333">✅ 已接入 Swoole</h2>
<p>当前时间:" . date('Y-m-d H:i:s') . "</p>");
方法二:设置更规范的响应头,避免中文乱码或样式失效$response->header("Content-Type", "text/html; charset=utf-8"); 这句必须放在 end() 之前,否则浏览器无法正确解析编码。
方法三:返回 JSON 接口(适合前后端分离调试)
$response->header("Content-Type", "application/json; charset=utf-8");<br>$response->end(json_encode(["msg" => "success", "timestamp" => time()], JSON_UNESCAPED_UNICODE));










