🗣 Wd提问: 程序PHP Swoole HTTP服务器
🤖 Ai回答: 当然可以!下面是一个使用 PHP Swoole 构建的简单 HTTP 服务器 的完整示例,适合初学者快速上手。
✅ PHP Swoole HTTP 服务器示例
📌 前提条件
1、安装了 PHP 7.2+(推荐 8.0+)
2、安装了 Swoole 扩展
安装 Swoole(Linux/Ubuntu 示例):
bash
pecl install swoole
然后在 `php.ini` 中添加:
ini
extension=swoole
重启 Web 服务器(如 Apache/Nginx)或 CLI 环境生效。
✅ 检查是否安装成功:
bash
php -m | grep swoole
🚀 示例代码:`server.php`
php
<?php
// 创建 HTTP 服务器,监听 127.0.0.1:9501
$http = new Swoole\Http\Server(127.0.0.1, 9501);
// 设置服务器配置(可选)
$http-set([
'worker_num' = 4, // 工作进程数,一般设为 CPU 核心数
'daemonize' = false, // 是否后台运行,调试时设为 false
'max_request' = 1000, // 每个 worker 最大处理请求数,防止内存泄漏
'dispatch_mode' = 2, // 负载均衡模式,2 表示固定模式
]);
// 监听请求事件
$http-on('request', function ($request, $response) {
// 设置响应头
$response-header('Content-Type', 'text/html; charset=utf-8');
$response-header('Server', 'Swoole HTTP Server');
// 输出响应内容
$response-end('<h1Hello, Swoole HTTP Server!</h1' .
'<pRequest URI: ' 、htmlspecialchars($request-server['request_uri']) 、'</p' .
'<pMethod: ' 、htmlspecialchars($request-server['request_method']) 、'</p' .
'<pClient IP: ' 、htmlspecialchars($request-server['remote_addr']) 、'</p');
});
// 监听启动事件
$http-on('start', function ($server) {
echo Swoole HTTP server started at http://127.0.0.1:9501\n;
echo Worker number: 、$server-setting['worker_num'] 、\n;
});
// 监听关闭事件
$http-on('shutdown', function ($server) {
echo Swoole HTTP server shutdown.\n;
});
// 启动服务器
$http-start();
▶️ 运行服务器
在终端中执行:
bash
php server.php
你会看到输出:
Swoole HTTP server started at http://127.0.0.1:9501
Worker number: 4
然后在浏览器中打开:
👉 [http://127.0.0.1:9501](http://127.0.0.1:9501)
你将看到一个漂亮的欢迎页面,显示请求信息。
💡 高级功能建议(可选)
1、支持静态文件服务
php
$http-on('request', function ($request, $response) {
$uri = $request-server['request_uri'];
$path = __DIR__ 、'/public' 、$uri;
if ($uri === '/') {
$path = __DIR__ 、'/public/index.html';
}
if (is_file($path)) {
$response-header('Content-Type', mime_content_type($path));
$response-end(file_get_contents($path));
return;
}
// 静态资源不存在,返回动态内容
$response-header('Content-Type', 'text/html; charset=utf-8');
$response-end('<h1404 Not Found</h1<pStatic file not found.</p');
});
创建 `public/index.html` 文件测试:
html
<!DOCTYPE html
<html
<head<titleSwoole Static</title</head
<body
<h1Welcome to Swoole Static Server!</h1
<pThis is a static HTML file.</p
</body
</html
2、使用路由(简单版)
php
$routes = [
'/' = function($req, $res) { $res-end('<h1Home</h1'); },
'/about' = function($req, $res) { $res-end('<h1About</h1'); },
'/api/user' = function($req, $res) { $res-header('Content-Type', 'application/json')-end(json_encode(['name' = 'Alice'])); },
];
$http-on('request', function ($request, $response) use ($routes) {
$uri = parse_url($request-server['request_uri'], PHP_URL_PATH);
if (isset($routes[$uri])) {
$routes[$uri]($request, $response);
} else {
$response-status(404);
$response-end('<h1404 Not Found</h1');
}
});
🛑 停止服务器
在终端中按 `Ctrl + C` 即可优雅关闭。
✅ 优势(为什么用 Swoole?)
| 特性 | 说明 |
| 高并发 | 基于协程,单进程可处理数千并发连接 |
| 长连接 | 支持 WebSocket、TCP、UDP |
| 性能极高 | 比传统 PHP-FPM 快 5~10 倍 |
| 持久化 | PHP 进程常驻内存,避免每次请求加载框架 |
| 支持异步 | 可异步调用 MySQL、Redis、HTTP 等 |
📚 推荐学习资源
Swoole 官网:https://www.swoole.com/
GitHub:https://github.com/swoole/swoole-src
中文文档:https://wiki.swoole.com/
✅ 总结
你现在已经拥有了一个完整的、高性能的 PHP Swoole HTTP 服务器!它非常适合:
构建 API 服务
实时聊天系统(WebSocket)
微服务网关
高并发后台任务
如需进一步扩展,可以集成:
Swoole + Laravel(使用 `laravel-s` 包)
Swoole + Redis / MySQL 异步驱动
使用 `Swoole\Table` 做内存共享
需要我帮你集成数据库或 WebSocket 功能吗?欢迎继续提问!🚀
📣 商家广告 :
👍
0
👎
IP地址: 15.106.232.80
搜索次数: 6
提问时间: 2025-11-10 21:58:40
🛒 域名购买 :
jiu.red fl.gs che.red souhuai.com.cn che.gs uj.gs 6.ac.cn il.gs 836.net.cn 875.net.cn
❓️ 热门提问 :
美国kt云服务器 服务器哪个好 本地 dns 服务器 SEO工具AI写作 Lucidchart教程 便宜的gpu运算服务器 高防cdn高防服务器 人脸识别源码定制开发 服务器的日本 广告联盟日结广告 豌豆Ai站群搜索引擎系统
🌐 域名评估 :
si.yn.cn bbs.bz xjop.cn dji.js.cn psyshake.com mowv.cn ppum.cn lanjq.com fc.la vivo.zj.cn
⛏ 最新挖掘 :
凯里酸汤鱼 贵阳烤脑花 都匀毛尖茶 花溪牛肉粉 贵阳烤生蚝 贵阳烤豆腐 贵阳纸包鱼 贵阳特色菜
🖌 热门作画 :
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊 :
🔗 友情链接 :
香港搜尋引擎
广州月饼厂家
ai提问
🧰 站长工具 :Ai工具 whois查询 搜索
📢 温馨提示 :本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持 :本站由豌豆Ai 提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。