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

问题描述 投票:1回答:1

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

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

谢谢拉木

php apache nginx
1个回答
0
投票

使用PHP-PMRoadRunnerSwoole,标签“应用服务器”是有争议的,但是它们都解决了最有问题的部分:浪费的“在每个请求上重新启动和清理应用”。并且,除了删除整个HTTP服务器→aux。进程管理→PHP脚本加载/处理从管道绕行(通过具有集成的[[in-process 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(实验)的支持。

    • Bonus:长期存在的服务器端PHP进程的各种体系结构替代方案(Swoole除外)here's a nice, detailed performance test。对于Swoole(与其他框架相比,而不是其他PHP流程管道设置!),请参见this nice framework performance chart。快得吓人。
    © www.soinside.com 2019 - 2024. All rights reserved.