php 实现webserver
使用 PHP 内置开发服务器
PHP 5.4 及以上版本提供了内置的开发服务器,适合快速测试和开发环境。
启动命令如下:
php -S localhost:8000
默认监听 localhost:8000,可通过浏览器访问。若需指定根目录:
php -S localhost:8000 -t /path/to/your/webroot
基于 Swoole 实现高性能 WebServer
Swoole 是 PHP 的协程高性能网络框架,适合生产环境。
安装 Swoole 扩展:
pecl install swoole
示例代码:
<?php
$http = new Swoole\Http\Server("0.0.0.0", 9501);
$http->on("request", function ($request, $response) {
$response->header("Content-Type", "text/plain");
$response->end("Hello Swoole!\n");
});
$http->start();
?>
运行后可通过 http://localhost:9501 访问。
使用 ReactPHP 构建异步服务器
ReactPHP 是 PHP 的异步事件驱动库。
安装依赖:
composer require react/http
示例代码:
<?php
require __DIR__ . '/vendor/autoload.php';
$server = new React\Http\HttpServer(function (Psr\Http\Message\ServerRequestInterface $request) {
return React\Http\Message\Response::plaintext("Hello ReactPHP!\n");
});
$socket = new React\Socket\SocketServer('0.0.0.0:8080');
$server->listen($socket);
echo "Server running at http://0.0.0.0:8080\n";
?>
结合 Nginx 作为反向代理
生产环境中,建议用 Nginx 代理 PHP 应用。
Nginx 配置示例:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:9501; # Swoole 或其他后端
proxy_set_header Host $host;
}
}
注意事项
- 内置服务器仅限开发使用,性能有限。
- Swoole 和 ReactPHP 需安装扩展或依赖,适合高性能场景。
- 生产环境务必配置防火墙和 HTTPS(如 Let's Encrypt)。







