4 điểm bởi GN⁺ 2024-05-31 | 1 bình luận | Chia sẻ qua WhatsApp

Giới thiệu FrankenPHP, máy chủ ứng dụng PHP hiện đại

FrankenPHP là gì?

  • FrankenPHP là một máy chủ ứng dụng PHP hiện đại được viết bằng ngôn ngữ Go.
  • Tích hợp trình thực thi PHP chính thức vào máy chủ web Caddy, hỗ trợ HTTP/1.1, HTTP/2 và HTTP/3.
  • Cung cấp tính năng tạo và gia hạn chứng chỉ HTTPS tự động (sử dụng Let’s Encrypt hoặc ZeroSSL).

Tính năng chính

  • Có thể chạy máy chủ PHP cấp production chỉ với một lệnh duy nhất.
  • Có thể tạo binary độc lập để chạy ứng dụng web PHP và công cụ dòng lệnh mà không cần phụ thuộc.
  • Hỗ trợ sẵn các PHP extension phổ biến (OPcache, XDebug, v.v.).

Cải thiện hiệu năng

  • Chế độ Worker: ứng dụng được khởi động một lần và được giữ trong bộ nhớ.
  • Dễ sử dụng: được hỗ trợ mặc định trong Symfony, API Platform, Laravel, v.v.
  • Tốc độ nhanh: nhanh hơn FPM 3,5 lần trong ứng dụng API Platform.
  • Hiệu quả: tận dụng tính năng goroutine của Go để mang lại hiệu năng hiệu quả.
  • Triển khai đơn giản: chạy bằng một binary duy nhất và không cần dịch vụ bên ngoài.

Ưu điểm của FrankenPHP

  • Thiết lập dễ và nhanh: chỉ cần sao chép tệp PHP vào document root.
  • Hiệu năng cao: kết hợp công nghệ máy chủ web hiện đại với trình thực thi PHP để mang lại hiệu năng cao.
  • Linh hoạt: ngay cả các ứng dụng không tương thích với chế độ Worker cũng vẫn có thể được phục vụ nguyên trạng.

Góc nhìn của GN⁺

  • Điểm thú vị: FrankenPHP có thể cải thiện đáng kể hiệu năng của ứng dụng PHP bằng cách tận dụng công nghệ máy chủ web hiện đại.
  • Điểm cần cân nhắc khi áp dụng: cần xem xét trước các vấn đề tương thích với môi trường máy chủ PHP hiện có.
  • Góc nhìn phản biện: việc áp dụng công nghệ mới có thể phát sinh đường cong học tập và chi phí thiết lập ban đầu.
  • Giải pháp thay thế được khuyến nghị: cũng đáng cân nhắc các máy chủ PHP như RoadRunner hoặc Swoole cung cấp chức năng tương tự.
  • Mặt lợi và hại của lựa chọn công nghệ: cải thiện hiệu năng và triển khai đơn giản là ưu điểm, nhưng cần thận trọng đánh giá rủi ro khi áp dụng công nghệ mới và các vấn đề tích hợp với hệ thống hiện có.

1 bình luận

 
GN⁺ 2024-05-31
Ý kiến Hacker News
  • Đã 10 năm tôi không phát triển PHP, nhưng trang landing này suýt khiến tôi quay lại với PHP: Thiết kế, màu sắc và animation gọn gàng, đề xuất giá trị được nhấn mạnh rất tốt. Có vẻ là một cách hay để bắt đầu một dự án nhỏ.

  • Lập trình viên C# lâu năm, hiện chủ yếu dùng PHP8: PHP8 là một ngôn ngữ tuyệt vời để hoàn thành công việc nhanh chóng. Hướng đi này tốt hơn LAMP.

  • Tò mò về kết quả trong benchmark Tech Empower: Hiện đang ở trạng thái "chưa hoàn tất" và đứng cuối bảng.

  • Thường dùng web server tích hợp của PHP khi phát triển: Nó chậm vì đơn luồng và không phù hợp với môi trường production. FrankenPHP trông rất hứa hẹn, nhưng vấn đề giới hạn core/thread vẫn còn tồn tại. Docker image có vẻ đầy hứa hẹn.

  • Đã thử FrankenPHP nhưng rất chậm: Tài liệu còn thiếu và hiệu năng thấp hơn kỳ vọng. Dù tuyên bố hiệu năng gấp 3,5 lần FPM, thực tế thậm chí không đạt nổi 1% mức đó.

  • FrankenPHP có vấn đề về hiệu năng: Dù vậy, đây vẫn là một dự án rất hứa hẹn.

  • Liên kết liên quan: FrankenPHP, phần giới thiệu về PHP app server viết bằng Go.

  • Cách build Docker container: Giải thích cách biến một Debian mới thành container cần thiết thông qua các lệnh Docker.

  • Đã thử benchmark Wordpress với FrankenPHP và Apache Mod-PHP: Không xác nhận được ưu thế của FrankenPHP. Đã test trong Docker và cần đào sâu thêm.

  • Thích việc dự án này lên trang nhất HN: Có cảm giác kiến trúc không chia sẻ với FPM vừa mang lại thành công cho PHP, vừa tạo ra giới hạn của nó.