
RoadRunner は、オープンソース (MIT ライセンス) の高性能 PHP アプリケーション サーバーであり、Go で書かれ、プラグインを備えたプロセス マネージャーです。プラグインを使用してプロジェクトごとに機能を拡張できるサービスとしての実行をサポートします。
RoadRunner は、PSR-7/PSR-17 標準と互換性のあるHTTP(S)/2/3サーバーやfCGIサーバーなど、さまざまなプラグインを備えています。これは、その多くの機能のうちの 1 つにすぎません。これは、従来の Nginx+FPM セットアップの効果的な代替手段として機能し、パフォーマンスの向上と柔軟性の向上を実現します。その広範なプラグイン オプションは単なるHTTP(S)/2/3およびfCGIサーバーをはるかに超えており、幅広い機能を提供します。
gRPC 、 http 、 jaeger )。gRPCサーバー。速度を上げるには、 protobuf拡張機能を使用できます。HTTP(S)/2/3およびfCGIサーバーは、自動 TLS 管理、 103 Early Hintsサポート、および静的、ヘッダー、gzip、prometheus (メトリクス)、send (x-sendfile)、OTEL、proxy_ip_parser などのミドルウェアを備えています。公式ウェブサイト|ドキュメント|フォーラム|発売スケジュール| RoadRunner の達人に聞く
最新の RoadRunner バージョンを入手する最も簡単な方法は、OSX、Linux、FreeBSD、および Windows で利用可能な、事前に構築されたリリース バイナリの 1 つを使用することです。これらのバイナリの使用手順は、GitHub リリース ページに記載されています。
Roadrunner バイナリ ファイルを取得するには、Docker イメージ: ghcr.io/roadrunner-server/roadrunner:2024.XXを使用できます (イメージとタグの詳細については、こちらを参照してください)。
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 パッケージに付属のコマンドを実行して、RoadRunner を自動的にインストールすることもできます。
composer require spiral/roadrunner-cli
./vendor/bin/rr get-binaryサーバー バイナリはプロジェクトのルートで利用可能になります。
注記
RoadRunner を自動的にダウンロードするには、PHP の拡張機能
php-curlおよびphp-zipが必要です。 Roadrunner を実行するには、PHP の拡張機能php-socketsインストールする必要があります。インストールされている拡張機能をphp --modulesで確認してください。
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構成は.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詳細については、ドキュメントを参照してください。
<?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によって保守されています。
すでに貢献してくれたすべての人々に感謝します!