RoadRunner ist ein Open-Source-Hochleistungs-PHP-Anwendungsserver (MIT-Lizenz), ein Prozessmanager, der in Go geschrieben und mit Plugins ausgestattet ist. Es unterstützt die Ausführung als Dienst mit der Möglichkeit, seine Funktionalität projektweise mit Plugins zu erweitern.
RoadRunner verfügt über eine Reihe von Plugins, darunter HTTP(S)/2/3
und fCGI
Server, die mit den PSR-7/PSR-17-Standards kompatibel sind. Dies ist nur eine seiner vielen Möglichkeiten. Es dient als effektive Alternative zum herkömmlichen Nginx+FPM-Setup und bietet verbesserte Leistung und mehr Flexibilität. Seine umfangreichen Plugin-Optionen gehen weit über HTTP(S)/2/3
und fCGI
Server hinaus und bieten eine breite Palette an Funktionalitäten:
gRPC
, http
, jaeger
).gRPC
Server. Für eine höhere Geschwindigkeit kann die protobuf
Erweiterung verwendet werden.HTTP(S)/2/3
und fCGI
Server verfügen über automatische TLS-Verwaltung , 103 Early Hints -Unterstützung und Middleware wie: Static, Headers, gzip, prometheus (Metriken), Send (x-sendfile), OTEL, Proxy_ip_parser usw.Offizielle Website | Dokumentation | Forum | Veröffentlichungsplan | Fragen Sie den RoadRunner-Guru
Der einfachste Weg, die neueste RoadRunner-Version zu erhalten, besteht darin, eine der vorgefertigten Release-Binärdateien zu verwenden, die für OSX, Linux, FreeBSD und Windows verfügbar sind. Anweisungen zur Verwendung dieser Binärdateien finden Sie auf der GitHub-Release-Seite.
Um die Roadrunner-Binärdatei zu erhalten, können Sie unser Docker-Image verwenden: ghcr.io/roadrunner-server/roadrunner:2024.XX
(weitere Informationen zu Image und Tags finden Sie hier).
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
Konfiguration in der Datei .rr.yaml
(vollständiges Beispiel):
Sie können RoadRunner auch automatisch installieren, indem Sie den im Composer-Paket enthaltenen Befehl verwenden:
composer require spiral/roadrunner-cli
./vendor/bin/rr get-binary
Die Server-Binärdatei ist im Stammverzeichnis Ihres Projekts verfügbar.
Notiz
Für den automatischen Download von RoadRunner sind die PHP-Erweiterungen
php-curl
undphp-zip
erforderlich. Die PHP-Erweiterungenphp-sockets
müssen installiert sein, um Roadrunner auszuführen. Überprüfen Sie mitphp --modules
Ihre installierten Erweiterungen.
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
Die Konfiguration befindet sich in der Datei .rr.yaml
(vollständiges Beispiel):
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
Lesen Sie mehr in der Dokumentation.
<?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 );
}
}
Wichtig
Wenn der EOF
Fehler angezeigt wird, überprüfen Sie, ob Sie die PHP-Pakete aus diesem Schritt installiert haben. Wenn dies nicht hilft, versuchen Sie, den Befehl php worker.php
direkt auszuführen und überprüfen Sie die Ausgabe.
So führen Sie den Anwendungsserver aus:
$ ./rr serve -c .rr.yaml
Die MIT-Lizenz (MIT). Weitere Informationen finden Sie unter LICENSE
. Verwaltet von Spiral Scout.
Vielen Dank an alle, die bereits dazu beigetragen haben!