商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 怎样用Swoole搭建一个基础HTTP服务器【实战】

怎样用Swoole搭建一个基础HTTP服务器【实战】

  发布于2026-07-05 阅读(0)

扫一扫,手机访问

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

怎样用Swoole搭建一个基础HTTP服务器【实战】

想用Swoole快速搭建一个能被浏览器访问的HTTP服务器?其实简单到超乎想象:不需要框架、不依赖Nginx、也不用配什么路由——你只需要确保PHP已经装好了Swoole扩展,然后写一个文件,执行一条命令,打开浏览器就能看到响应内容。

确认Swoole扩展已启用

先检查一下扩展是否就绪。在终端里敲 php -m | grep swoole,如果输出里出现了 swoole,说明环境没问题;如果没有任何输出,那就得先安装一下——比如用 pecl install swoole,或者直接用Docker镜像里自带的版本。

这里有个硬性要求:PHP版本必须≥8.0,且Swoole版本必须≥5.0。低于这个版本的话,SwooleHttpServer 的一些关键方法可能用不了,到时候出问题排查起来反而更麻烦。

编写 server.php 文件

新建一个 server.php 文件,把下面这段代码复制进去:

$server = new SwooleHttpServer("127.0.0.1", 9501);
$server->on("request", function ($request, $response) {
$response->header("Content-Type", "text/plain; charset=utf-8");
$response->end("Hello from Swoole HTTP Server!n");$server->start();

注意,这一行 $response->end() 是必须的,漏掉的话客户端会一直挂起等待,连接就不会正常关闭。这不是锦上添花,而是协议层面的硬性要求,一定要写。

启动服务并验证

启动很简单:在 server.php 所在目录运行 php server.php,终端会停留不动,说明已经启动成功。然后新开一个终端窗口,用 curl http://127.0.0.1:9501 测试一下——如果看到 Hello from Swoole HTTP Server! 就说明通了。浏览器访问同一个地址,页面也会显示同样的文本。

要停止服务,按 Ctrl+C 即可。千万别用 kill -9 强杀主进程,否则残留的监听端口可能会阻塞下次启动,到时候还得手动清理,很麻烦。

让服务支持 HTML 响应(可选增强)

如果想让服务器返回更丰富的页面,有三种常见做法:

第一种:直接改 end() 的内容为 HTML 字符串

$response->end("

✅ 已接入 Swoole

当前时间:" . date('Y-m-d H:i:s') . "

");

第二种:设置更规范的响应头,避免中文乱码或样式失效
$response->header("Content-Type", "text/html; charset=utf-8"); 这句必须放在 end() 之前,否则浏览器无法正确解析编码。

第三种:返回 JSON 接口,适合前后端分离调试

$response->header("Content-Type", "application/json; charset=utf-8");
$response->end(json_encode(["msg" => "success", "timestamp" => time()], JSON_UNESCAPED_UNICODE));

这三种方法可以根据实际场景灵活选用,核心逻辑不变——只要守住 end() 这条红线,其他都是锦上添花。

本文转载于:https://www.php.cn/faq/2737610.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注