
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-binaryDie Server-Binärdatei ist im Stammverzeichnis Ihres Projekts verfügbar.
Notiz
Für den automatischen Download von RoadRunner sind die PHP-Erweiterungen
php-curlundphp-ziperforderlich. Die PHP-Erweiterungenphp-socketsmüssen installiert sein, um Roadrunner auszuführen. Überprüfen Sie mitphp --modulesIhre 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.debcurl --proto ' =https ' --tlsv1.2 -sSf https://raw.githubusercontent.com/roadrunner-server/roadrunner/master/download-latest.sh | shbrew install roadrunnerchoco 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 : errorLesen 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!