techdivision/webserver

此包已被废弃且不再维护。作者建议使用 appserver-io/webserver 包。

用 PHP 编写的 PHP 多线程 Web 服务器

5.1.5 2018-06-19 19:46 UTC

README

Latest Stable Version Total Downloads License Build Status Code Coverage Code Quality

介绍

真的吗?一个用纯 PHP 写的 PHP Web 服务器?哦,是的! :) 这是一个符合 HTTP/1.1 规范的 PHP Web 服务器,最好的一点是它有一个 PHP 模块,并且是线程安全的!

我们在 appserver.io 项目中将它用作处理 HTTP 请求的服务器组件。

安装

如果您想将 Web 服务器与您的应用程序一起使用,请将以下内容添加到您的 composer.json 中,并在项目中运行 composer update

{
    "require": {
        "appserver-io/webserver": "dev-master"
    }
}

使用方法

如果满足要求,使用 Web 服务器非常简单。只需这样做

git clone https://github.com/appserver-io/webserver
cd webserver
PHP_BIN=/path/to/your/threadsafe/php-binary bin/webserver

如果您使用 appserver.io,启动行将是

bin/webserver

转到 http://127.0.0.1:9080,如果一切顺利,您将看到 PHP Web 服务器的欢迎页面。它将在不安全的 HTTP 端口 9080 和安全的 HTTPS 端口 9443 上启动。

要测试 PHP 脚本,请转到 http://127.0.0.1:9080/info.php 并查看发生了什么... ;)

此外,您可以在启动脚本中传递两个参数。第一个参数是自定义配置文件的路径,第二个参数是自定义自动加载文件的路径。例如,如果您想使用自己的配置和自动加载文件,请使用以下命令启动 Web 服务器

bin/webserver path/to/your/configuration.xml path/to/your/autoloader.php

这两个文件可以是绝对路径,也可以相对于 Web 服务器的根目录。

请注意,自动加载器 必须 能够加载 Web 服务器的类,因为它不是补充默认 composer 自动加载器,而是替代品。

语义化版本控制

此库遵循语义化版本控制,其公共 API 定义如下

  • 公共 API、配置以及所有模块的完整性
  • \AppserverIo\WebServer\ConnectionHandlers\HttpConnectionHandler 的公共接口
  • 命名空间 \AppserverIo\WebServer\Interfaces 中的公共接口

外部链接