gpt4 book ai didi

php - 我们有任何 php 应用程序服务器(不是网络服务器)吗?

转载 作者:行者123 更新时间:2023-12-05 03:14:48 24 4
gpt4 key购买 nike

对于 Java,我们有不同的应用程序服务器,例如 WebSphere 和 Web 逻辑,我怀疑我们有任何 PHP 应用程序服务器吗?

到目前为止,我们正在使用 Apache 和 Nginx Web 服务器来构建 PHP Web 应用程序。应用服务器如何对 PHP 有用?

谢谢瑞木

最佳答案

PHP-PM , RoadRunner , Swoole “应用程序服务器”标签是有争议的,但它们都解决了最有问题的部分:浪费的“处理应用程序重新初始化和清理每个请求”。而且,除了删除整个 HTTP 服务器 → aux。过程管理→ PHP 脚本加载/处理 绕过管道(通过集成的进程中 HTTP 服务器 + 进程管理设施),它们还添加了不同级别/数量的额外服务以帮助在 PHP 中构建强大的长期服务器端应用程序。


Swoole 在技术上被实现为 PHP 扩展,但是 does much more比通常的。它自己启动工作进程,并且像框架一样使用:您将编写事件循环并将控制权传递给 Swoole。您的应用程序将连接起来处理 HTTP 请求(或 websocket 事件等),使用它们的非阻塞异步 I/O(网络、文件系统、进程管理),以及各种其他方便的服务,包括。协程、IPC、锁定等)。所有异步、性能关键的 I/O 都在 C 中通过简单的 PHP API 处理,包括:

  • HTTP 服务器和客户端
  • TCP/UDP 服务器和客户端
  • 网络套接字服务器
  • Redis 服务器
  • MySQL 客户端
  • 文件系统 I/O、IPC、进程管理。等

https://scottaubrey.info/blog/2018-10-22-first-look-at-swoole/

It's basically Node.js for PHP

Unofficial extra docs (除了 the official ones )


RoadRunner 是一个流程管理器服务器(用 Go 语言编写)。来自他们的 feature list :

  • PSR-7 HTTP 服务器(文件上传、错误处理、静态文件、热重载、中间件、事件监听器)
  • HTTPS 和 HTTP/2 支持(包括 HTTP/2 推送、H2C)
  • 完全可定制的服务器,FastCGI 支持
  • 负载平衡器、流程管理器和任务管道
  • 在 TCP、UNIX 套接字和标准管道上工作
  • 自动更换 worker 和安全销毁 PHP 进程
  • Worker 生命周期管理( Controller )
  • 非常快(使用 16 个线程在 Ryzen 1700X 上每秒约 250k rpc 调用)
  • 与 Symfony、Laravel、Slim、CakePHP、Zend Expressive 集成
  • 自动重新加载文件更改
  • 适用于 Windows(Windows 10 支持 Unix 套接字 (AF_UNIX))

PHP-PM 是另一个高级 PHP 进程管理器(如 RoadRunner),但也带有一个应用程序(元)框架,构建于 ReactPHP 之上(另一个事件驱动的异步 I/O 库,类似于 Swoole,但是用 PHP 实现,所以本质上比较慢)。这个包涵盖了应用服务器杂务的大部分基础(https://laravel-news.com/php-pm)。他们列出的一些features :

  • 集成负载平衡器。
  • 热代码重新加载(当 PHP 文件更改时)。
  • 用于简化开发过程的静态文件。
  • 支持 HttpKernel(Symfony/Laravel)、Drupal(实验性)、Zend(实验性)。

奖金:here's a nice, detailed performance test用于长期服务器端 PHP 进程的各种架构替代方案(不包括 Swoole)。对于 Swoole(与其他框架相比,而不是其他 PHP 流程管道设置!),请参阅 this nice framework performance chart ;速度快得吓人。

关于php - 我们有任何 php 应用程序服务器(不是网络服务器)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22225021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com