对于 Java,我们有不同的应用程序服务器,例如 WebSphere 和 Web 逻辑,我的疑问是我们有 PHP 应用程序服务器吗?
到目前为止,我们正在使用 Apache 和 Nginx Web 服务器来运行 PHP Web 应用程序。应用程序服务器对 PHP 有什么用处?
谢谢瑞木
对于PHP-PM、RoadRunner、Swoole来说,“应用程序服务器”这个标签是有争议的,但它们都解决了最有问题的部分:浪费的“在每个请求上处理应用程序重新初始化和清理”。并且,除了删除整个HTTP 服务器 → aux。流程管理 → PHP 脚本从管道加载/处理绕道(通过集成的进程内HTTP 服务器 + 进程管理工具),它们还添加不同级别/数量的额外服务,以帮助在 PHP 中构建强大的、长期存在的服务器端应用程序。
Swoole在技术上是作为 PHP 扩展实现的,但它的功能比通常的扩展要多得多。它自行启动工作进程,并且像框架一样使用:您将编写事件循环并将控制权传递给 Swoole。您的应用程序将连接到处理 HTTP 请求(或 websocket 事件等),使用其非阻塞异步 I/O(网络、文件系统、进程管理)以及各种其他方便的服务,包括。协程、IPC、锁定等)。所有异步、性能关键的 I/O 均通过简单的 PHP API 用 C 语言处理,包括:
https://scottaubrey.info/blog/2018-10-22-first-look-at-swoole/
RoadRunner是一个流程管理服务器(用 Go 编写)。从他们的功能列表中:
PHP-PM是另一个高级 PHP 流程管理器(如 RoadRunner),但也附带一个应用程序(元)框架,构建在ReactPHP(另一个事件驱动的异步 I/O 库,类似于 Swoole,但在PHP,所以本质上较慢)。这个包涵盖了应用程序服务器的大部分工作(https://laravel-news.com/php-pm)。他们列出的一些功能:
额外奖励:这里有一个针对长寿命服务器端 PHP 进程的各种架构替代方案(不包括 Swoole)的详细、详细的性能测试。对于Swoole(与其他框架相比,而不是其他PHP流程管道设置!),请参阅这个不错的框架性能图表;速度太快了。