RoadRunner est un serveur d'applications PHP hautes performances open source (sous licence MIT), un gestionnaire de processus écrit en Go et alimenté par des plugins. Il prend en charge l'exécution en tant que service avec la possibilité d'étendre ses fonctionnalités projet par projet avec des plugins.
RoadRunner propose une gamme de plugins, notamment des serveurs HTTP(S)/2/3
et fCGI
compatibles avec les normes PSR-7/PSR-17. Ce n’est qu’une de ses nombreuses capacités. Il constitue une alternative efficace à la configuration traditionnelle Nginx+FPM, offrant des performances améliorées et plus de flexibilité. Ses nombreuses options de plugins vont bien au-delà des seuls serveurs HTTP(S)/2/3
et fCGI
, offrant un large éventail de fonctionnalités :
gRPC
, http
, jaeger
).gRPC
. Pour une vitesse accrue, l'extension protobuf
peut être utilisée.HTTP(S)/2/3
et fCGI
proposent une gestion automatique de TLS , la prise en charge de 103 Early Hints et des middlewares tels que : Static, Headers, gzip, prometheus (metrics), send (x-sendfile), OTEL, proxy_ip_parser, etc.Site officiel | Documents | Forum | Calendrier de sortie | Demandez à RoadRunner Guru
Le moyen le plus simple d'obtenir la dernière version de RoadRunner consiste à utiliser l'un des binaires prédéfinis, disponibles pour OSX, Linux, FreeBSD et Windows. Les instructions d'utilisation de ces binaires se trouvent sur la page des versions de GitHub.
Pour obtenir le fichier binaire roadrunner, vous pouvez utiliser notre image docker : ghcr.io/roadrunner-server/roadrunner:2024.XX
(plus d'informations sur l'image et les balises peuvent être trouvées ici).
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
Configuration située dans le fichier .rr.yaml
(échantillon complet) :
Vous pouvez également installer RoadRunner automatiquement à l'aide de la commande fournie avec le package composer, exécutez :
composer require spiral/roadrunner-cli
./vendor/bin/rr get-binary
Le binaire du serveur sera disponible à la racine de votre projet.
Note
Les extensions PHP
php-curl
etphp-zip
sont nécessaires pour télécharger automatiquement RoadRunner. Les extensionsphp-sockets
de PHP doivent être installées pour exécuter roadrunner. Vérifiez avecphp --modules
vos extensions installées.
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 configuration peut être située dans le fichier .rr.yaml
(échantillon complet) :
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
En savoir plus dans Documentation.
<?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 );
}
}
Important
Si vous voyez l'erreur EOF
, vérifiez que vous avez installé les packages PHP de cette étape. Si cela ne résout pas le problème, essayez d’exécuter directement la commande php worker.php
et vérifiez le résultat.
Pour exécuter le serveur d'applications :
$ ./rr serve -c .rr.yaml
La licence MIT (MIT). Veuillez consulter LICENSE
pour plus d'informations. Maintenu par Spiral Scout.
Merci à toutes les personnes qui ont déjà contribué !