RoadRunner는 오픈 소스(MIT 라이선스) 고성능 PHP 애플리케이션 서버이자 Go로 작성되고 플러그인으로 구동되는 프로세스 관리자입니다. 플러그인을 사용하여 프로젝트별로 기능을 확장할 수 있는 기능을 통해 서비스 실행을 지원합니다.
RoadRunner는 PSR-7/PSR-17 표준과 호환되는 HTTP(S)/2/3
및 fCGI
서버를 포함하여 다양한 플러그인을 제공합니다. 이는 수많은 기능 중 하나일 뿐입니다. 기존 Nginx+FPM 설정에 대한 효과적인 대안으로 사용되어 향상된 성능과 더 많은 유연성을 제공합니다. 광범위한 플러그인 옵션은 HTTP(S)/2/3
및 fCGI
서버를 넘어 광범위한 기능을 제공합니다.
gRPC
, http
, jaeger
)gRPC
서버. 속도를 높이려면 protobuf
확장을 사용할 수 있습니다.HTTP(S)/2/3
및 fCGI
서버는 자동 TLS 관리 , 103가지 초기 힌트 지원 및 정적, 헤더, gzip, prometheus(메트릭), 전송(x-sendfile), OTEL, Proxy_ip_parser 등과 같은 미들웨어 기능을 제공합니다.공식 홈페이지 | 문서 | 포럼 | 출시 일정 | RoadRunner 전문가에게 물어보세요
최신 RoadRunner 버전을 얻는 가장 쉬운 방법은 OSX, Linux, FreeBSD 및 Windows에서 사용할 수 있는 사전 구축된 릴리스 바이너리 중 하나를 사용하는 것입니다. 이러한 바이너리 사용에 대한 지침은 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
이 필요합니다. 로드러너를 실행하려면 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)가 관리합니다.
이미 기여해주신 모든 분들께 감사드립니다!