spiral / roadrunner
RoadRunner:使用Go编写的性能卓越的PHP应用程序服务器和进程管理器,并支持插件
- dev-master
- v2024.2.1
- v2024.2.0
- v2024.1.5
- v2024.1.4
- v2024.1.3
- v2024.1.2
- v2024.1.1
- v2024.1.0
- v2023.3.12
- v2023.3.11
- v2023.3.10
- v2023.3.9
- v2023.3.8
- v2023.3.7
- v2023.3.6
- v2023.3.5
- v2023.3.4
- v2023.3.3
- v2023.3.2
- v2023.3.1
- v2023.3.0
- v2023.3.0-rc.1
- v2023.3.0-beta.2
- v2023.3.0-beta.1
- v2023.2.2
- v2023.2.1
- v2023.2.0
- v2023.2.0-beta.3
- v2023.2.0-beta.2
- v2023.2.0-beta.1
- v2023.1.5
- v2023.1.4
- v2023.1.3
- v2023.1.2
- v2023.1.1
- v2023.1.0
- v2023.1.0-rc.2
- v2023.1.0-rc.1
- v2023.1.0-beta.1
- v2023.1.0-alpha.2
- v2023.1.0-alpha.1
- v2.12.3
- v2.12.2
- v2.12.2-alpha.2
- v2.12.2-alpha.1
- v2.12.1
- v2.12.1-rc.1
- v2.12.0
- v2.12.0-rc.1
- v2.12.0-beta.1
- v2.12.0-alpha.1
- v2.11.4
- v2.11.4-beta.1
- v2.11.3
- v2.11.3-rc.1
- v2.11.2
- v2.11.1
- v2.11.0
- v2.11.0-rc.1
- v2.11.0-beta.3
- v2.11.0-beta.2
- v2.11.0-beta.1
- v2.10.7
- v2.10.6
- v2.10.5
- v2.10.4
- v2.10.4-rc.1
- v2.10.3
- v2.10.2
- v2.10.1
- v2.10.0
- v2.10.0-rc.7
- v2.10.0-rc.6
- v2.10.0-rc.5
- v2.10.0-rc.4
- v2.10.0-rc.3
- v2.10.0-rc.2
- v2.10.0-rc.1
- v2.10.0-alpha.1
- v2.9.4
- v2.9.3
- v2.9.2
- v2.9.1
- v2.9.0
- v2.9.0-alpha.1
- v2.8.8
- v2.8.7
- v2.8.6
- v2.8.5
- v2.8.4
- v2.8.3
- v2.8.2
- v2.8.1
- v2.8.0
- v2.8.0-rc.2
- v2.8.0-rc.1
- v2.7.9
- v2.7.8
- v2.7.7
- v2.7.6
- v2.7.5
- v2.7.4
- v2.7.3
- v2.7.2
- v2.7.2-rc.4
- v2.7.2-rc.3
- v2.7.2-rc.2
- v2.7.2-rc.1
- v2.7.1
- v2.7.0
- v2.7.0-rc.2
- v2.7.0-rc.1
- v2.7.0-beta.1
- v2.6.3
- v2.6.2
- v2.6.1
- v2.6.0
- v2.6.0-rc.1
- v2.6.0-beta.1
- v2.6.0-alpha.5
- v2.6.0-alpha.4
- v2.6.0-alpha.3
- v2.6.0-alpha.2
- v2.6.0-alpha.1
- v2.5.3
- v2.5.2
- v2.5.1
- v2.5.0
- v2.5.0-rc.2
- v2.5.0-rc.1
- v2.5.0-beta.4
- v2.5.0-beta.3
- v2.5.0-beta.2
- v2.5.0-beta.1
- v2.5.0-alpha.2
- v2.5.0-alpha.1
- v2.4.1
- v2.4.0
- v2.4.0-rc.1
- v2.4.0-beta.1
- v2.4.0-alpha.1
- v2.3.2
- v2.3.1
- v2.3.1-rc.1
- v2.3.1-beta.6
- v2.3.1-beta.4
- v2.3.1-beta.3
- v2.3.1-beta.1
- v2.3.0
- v2.3.0-beta.3
- v2.3.0-beta.2
- v2.3.0-beta.1
- v2.2.1
- v2.2.0
- v2.1.1
- v2.1.0
- v2.1.0-beta.3
- v2.1.0-beta.2
- v2.1.0-beta.1
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.2-beta.2
- v2.0.2-beta.1
- v2.0.1
- v2.0.0
- v2.0.0-RC.4
- v2.0.0-RC.3
- v2.0.0-RC.1
- v2.0.0-beta.24
- v2.0.0-beta.22
- v2.0.0-beta.21
- v2.0.0-beta19
- v2.0.0-beta13
- v2.0.0-beta12
- v2.0.0-beta11
- v2.0.0-alpha22
- v2.0.0-alpha21
- v2.0.0-alpha20
- v2.0.0-alpha19
- v2.0.0-alpha18
- v2.0.0-alpha17
- v2.0.0-alpha16
- v2.0.0-alpha15
- v2.0.0-alpha14
- v2.0.0-alpha13
- v2.0.0-alpha12
- v2.0.0-alpha11
- v2.0.0-alpha10
- v2.0.0-alpha7
- v2.0.0-alpha6
- v2.0.0-alpha5
- v2.0.0-alpha3
- v2.0.0-alpha2
- v2.0.0-alpha1
- v1.9.2
- v1.9.1
- v1.9.0
- v1.8.4
- v1.8.3
- v1.8.2
- v1.8.1
- v1.8.0
- v1.7.1
- v1.7.0
- v1.6.4
- v1.6.3
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.8
- v1.4.7
- v1.4.6
- v1.4.5
- v1.4.4
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.7
- v1.3.6
- v1.3.5
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.1
- v1.1.0
- v1.0.5
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v0.9.0
- dev-stable
- dev-release/v2024.2.1
- dev-dependabot/go_modules/github.com/roadrunner-server/server/v5-5.1.1
- dev-dependabot/go_modules/github.com/roadrunner-server/http/v5-5.0.3
- dev-dependabot/go_modules/github.com/roadrunner-server/pool-1.0.2
- dev-dependabot/go_modules/github.com/roadrunner-server/grpc/v5-5.0.5
- dev-dependabot/go_modules/github.com/roadrunner-server/endure/v2-2.6.1
This package is auto-updated.
Last update: 2024-09-12 16:24:35 UTC
README
RoadRunner 是一个开源的(MIT许可)高性能PHP应用程序服务器和进程管理器,用Go编写并支持插件 ❤️。它支持作为服务运行,并可以通过插件根据项目需求扩展其功能。
特性
RoadRunner 提供了一系列插件,包括兼容PSR-7/PSR-17标准的 HTTP(S)/2/3
和 fCGI
服务器。这只是它众多功能之一。它作为传统Nginx+FPM设置的替代品非常有效,提供更好的性能和更高的灵活性。其广泛的插件选项远远超出了 HTTP(S)/2/3
和 fCGI
服务器,提供了广泛的函数功能。
- 队列驱动器:RabbitMQ、Kafka、SQS、Beanstalk、NATS、内存。
- KV驱动器:Redis、Memcached、BoltDB、内存。
- 支持OpenTelemetry协议(
gRPC
、http
、jaeger
)。 - 通过 Temporal 的 工作流引擎。
gRPC
服务器。为了提高速度,可以使用protobuf
扩展。HTTP(S)/2/3
和fCGI
服务器具有 自动TLS管理、103 Early Hints 支持和中间件,如:静态、头部、gzip、prometheus(指标)、send(x-sendfile)、OTEL、proxy_ip_parser 等。- 嵌入式的分布式锁插件,用于管理对共享资源的访问。
- 度量服务器(您可以轻松暴露自己的)。
- 通过 Centrifugo 服务器提供的 WebSocket 和广播。
- 类似于Systemd的服务管理器,具有自动重启、执行时间限制等功能。
- 生产就绪。
- 还有更多 😉
加入我们的Discord服务器: 链接
安装
获取最新RoadRunner版本的最容易方法是使用预构建的发布二进制文件之一,这些二进制文件适用于OSX、Linux、FreeBSD和Windows。有关使用这些二进制文件的说明可在GitHub 发布页面 上找到。
Docker
要获取roadrunner二进制文件,可以使用我们的Docker镜像: ghcr.io/roadrunner-server/roadrunner:2024.X.X
(有关镜像和标签的更多信息,请参阅此处)。
FROM ghcr.io/roadrunner-server/roadrunner:2024.X.X AS roadrunner FROM php:8.3-cli COPY --from=roadrunner /usr/bin/rr /usr/local/bin/rr # USE THE RR
配置位于 .rr.yaml
文件中(完整示例)
通过Composer安装
您也可以使用随composer包提供的命令自动安装RoadRunner,运行
composer require spiral/roadrunner-cli ./vendor/bin/rr get-binary
服务器二进制文件将位于您项目的根目录。
注意
要自动下载RoadRunner,需要PHP扩展
php-curl
和php-zip
。运行roadrunner需要安装PHP扩展php-sockets
。使用php --modules
检查已安装的扩展。
适用于Debian衍生版(Ubuntu、Mint、MX等)的安装选项
wget https://github.com/roadrunner-server/roadrunner/releases/download/v2024.X.X/roadrunner-2024.X.X-linux-amd64.deb sudo dpkg -i roadrunner-2024.X.X-linux-amd64.deb
通过curl下载最新版本
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/roadrunner-server/roadrunner/master/download-latest.sh | sh
在MacOS上使用Homebrew
brew install roadrunner
在Windows上使用Chocolatey
choco install roadrunner
配置位于.rr.yaml
文件中(完整示例)
version: '3' rpc: listen: tcp://127.0.0.1:6001 server: command: "php worker.php" http: address: "0.0.0.0:8080" logs: level: error
更多内容请参阅文档。
示例Worker
<?php use Spiral\RoadRunner; use Nyholm\Psr7; include "vendor/autoload.php"; $worker = RoadRunner\Worker::create(); $psrFactory = new Psr7\Factory\Psr17Factory(); $worker = new RoadRunner\Http\PSR7Worker($worker, $psrFactory, $psrFactory, $psrFactory); while ($req = $worker->waitRequest()) { try { $rsp = new Psr7\Response(); $rsp->getBody()->write('Hello world!'); $worker->respond($rsp); } catch (\Throwable $e) { $worker->getWorker()->error((string)$e); } }
重要
如果您看到EOF
错误,请检查您是否已从此步骤安装了PHP包。如果这没有帮助,请尝试直接执行命令php worker.php
并检查输出。
可用的插件:链接
运行
运行应用程序服务器
$ ./rr serve -c .rr.yaml
许可证
MIT许可证(MIT)。有关更多信息,请参阅LICENSE
。由Spiral Scout维护。
贡献者
感谢所有已经做出贡献的人!