RoadRunner เป็นเซิร์ฟเวอร์แอปพลิเคชัน PHP ประสิทธิภาพสูงแบบโอเพ่นซอร์ส (ได้รับอนุญาตจาก MIT) ตัวจัดการกระบวนการที่เขียนด้วยภาษา Go และขับเคลื่อนด้วยปลั๊กอิน รองรับการทำงานเป็นบริการที่มีความสามารถในการขยายฟังก์ชันการทำงานในแต่ละโปรเจ็กต์ด้วยปลั๊กอิน
RoadRunner มีปลั๊กอินมากมาย รวมถึงเซิร์ฟเวอร์ HTTP(S)/2/3
และ fCGI
ที่เข้ากันได้กับมาตรฐาน PSR-7/PSR-17 นี่เป็นเพียงหนึ่งในความสามารถมากมายของมัน โดยทำหน้าที่เป็นทางเลือกที่มีประสิทธิภาพแทนการตั้งค่า Nginx+FPM แบบดั้งเดิม โดยให้ประสิทธิภาพที่ดีขึ้นและมีความยืดหยุ่นมากขึ้น ตัวเลือกปลั๊กอินที่กว้างขวางมีมากกว่าแค่เซิร์ฟเวอร์ HTTP(S)/2/3
และ fCGI
โดยมีฟังก์ชันการทำงานที่หลากหลาย:
gRPC
, http
, jaeger
)gRPC
เพื่อเพิ่มความเร็ว สามารถใช้ส่วนขยาย protobuf
ได้HTTP(S)/2/3
และ fCGI
มี การจัดการ TLS อัตโนมัติ รองรับ 103 Early Hints และมิดเดิลแวร์ เช่น: Static, Headers, gzip, prometheus (metrics), send (x-sendfile), OTEL, proxy_ip_parser เป็นต้นเว็บไซต์อย่างเป็นทางการ | เอกสารประกอบ | ฟอรั่ม | กำหนดการเปิดตัว | ถามกูรู RoadRunner
วิธีที่ง่ายที่สุดในการรับ RoadRunner เวอร์ชันล่าสุดคือการใช้ไบนารีรีลีสที่สร้างไว้ล่วงหน้าตัวใดตัวหนึ่ง ซึ่งพร้อมใช้งานสำหรับ OSX, Linux, FreeBSD และ Windows คำแนะนำในการใช้ไบนารีเหล่านี้อยู่ในหน้าเผยแพร่ GitHub
หากต้องการรับไฟล์ไบนารีของ roadrunner คุณสามารถใช้อิมเมจนักเทียบท่าของเรา: 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
(ตัวอย่างเต็ม):
คุณยังสามารถติดตั้ง RoadRunner ได้โดยอัตโนมัติโดยใช้คำสั่งที่มาพร้อมกับแพ็คเกจผู้แต่ง ให้รัน:
composer require spiral/roadrunner-cli
./vendor/bin/rr get-binary
ไบนารีของเซิร์ฟเวอร์จะใช้งานได้ที่รากของโปรเจ็กต์ของคุณ
บันทึก
ส่วนขยายของ PHP จำเป็นต้องมี
php-curl
และphp-zip
เพื่อดาวน์โหลด RoadRunner โดยอัตโนมัติ จำเป็นต้องติดตั้งส่วนขยายphp-sockets
ของ PHP เพื่อเรียกใช้ roadrunner ตรวจสอบกับ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) โปรดดู LICENSE
สำหรับข้อมูลเพิ่มเติม ดูแลโดย Spiral Scout
ขอบคุณทุกคนที่มีส่วนร่วมแล้ว!