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.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
構成は.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によって保守されています。
すでに貢献してくれたすべての人々に感謝します!