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

时间:2014-03-06 12:47:33

标签: php apache nginx

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

到目前为止我们正在将Apache和Nginx Web服务器用于PHP Web应用程序。应用程序服务器如何对PHP有用?

由于 瑞木

1 个答案:

答案 0 :(得分:0)

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


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

  • HTTP服务器和客户端
  • TCP / UDP服务器和客户端
  • Websocket服务器
  • Redis服务器
  • MySQL客户端
  • 文件系统I / O,IPC,进程mgmt。等

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套接字和标准管道上工作
  • 自动替换工作人员并安全销毁PHP进程
  • 工人生命周期管理(控制器)
  • 非常快(使用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;。速度非常快。