RoadRunner es un servidor de aplicaciones PHP de alto rendimiento, de código abierto (con licencia MIT), un administrador de procesos escrito en Go y con complementos. Admite la ejecución como un servicio con la capacidad de ampliar su funcionalidad por proyecto con complementos.
RoadRunner presenta una variedad de complementos, incluidos servidores HTTP(S)/2/3
y fCGI
que son compatibles con los estándares PSR-7/PSR-17. Esta es sólo una de sus muchas capacidades. Sirve como una alternativa eficaz a la configuración tradicional de Nginx+FPM, proporcionando un rendimiento mejorado y más flexibilidad. Sus amplias opciones de complementos van mucho más allá de los servidores HTTP(S)/2/3
y fCGI
, y ofrecen una amplia gama de funcionalidades:
gRPC
, http
, jaeger
).gRPC
. Para aumentar la velocidad, se puede utilizar la extensión protobuf
.HTTP(S)/2/3
y fCGI
cuentan con administración automática de TLS , compatibilidad con 103 primeras sugerencias y middleware como: estático, encabezados, gzip, prometheus (métricas), envío (x-sendfile), OTEL, proxy_ip_parser, etc.Sitio web oficial | Documentación | Foro | Calendario de lanzamiento | Pregúntale al gurú de RoadRunner
La forma más sencilla de obtener la última versión de RoadRunner es utilizar uno de los archivos binarios prediseñados, que están disponibles para OSX, Linux, FreeBSD y Windows. Las instrucciones para usar estos binarios se encuentran en la página de lanzamientos de GitHub.
Para obtener el archivo binario de roadrunner, puede utilizar nuestra imagen acoplable: ghcr.io/roadrunner-server/roadrunner:2024.XX
(puede encontrar más información sobre la imagen y las etiquetas aquí).
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
Configuración ubicada en el archivo .rr.yaml
(muestra completa):
También puedes instalar RoadRunner automáticamente usando el comando incluido con el paquete Composer, ejecuta:
composer require spiral/roadrunner-cli
./vendor/bin/rr get-binary
El binario del servidor estará disponible en la raíz de su proyecto.
Nota
Se requieren las extensiones de PHP
php-curl
yphp-zip
para descargar RoadRunner automáticamente. Es necesario instalar las extensiones de PHPphp-sockets
para ejecutar roadrunner. Consulte conphp --modules
sus extensiones instaladas.
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 --proto ' =https ' --tlsv1.2 -sSf https://raw.githubusercontent.com/roadrunner-server/roadrunner/master/download-latest.sh | sh
brew install roadrunner
choco install roadrunner
La configuración se puede ubicar en el archivo .rr.yaml
(muestra completa):
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
Lea más en Documentación.
<?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 );
}
}
Importante
Si ve el error EOF
, verifique que haya instalado los paquetes PHP de este paso. Si esto no ayuda, intente ejecutar el comando php worker.php
directamente y verifique el resultado.
Para ejecutar el servidor de aplicaciones:
$ ./rr serve -c .rr.yaml
La Licencia MIT (MIT). Consulte LICENSE
para obtener más información. Mantenido por Explorador Espiral.
¡Gracias a todas las personas que ya contribuyeron!