PHP-FPM là gì? Giải pháp cho trang web có lưu lượng truy cập cao.

Đã xem: 53
Cập nhât: 3 năm trước

PHP-FPM (FastCGI Process Manager) là cách triển khai thay thế phổ biến nhất của PHP FastCGI . PHP (viết tắt của PHP: Hypertext Preprocessor) là một trong những ngôn ngữ lập trình mã nguồn mở phổ biến nhất trên Internet, được sử dụng để phát triển web trên các nền tảng như Magento, WordPress hay Drupal. Mặc dù ban đầu nó được thiết kế để xử lý trước văn bản thuần túy trong UTF-8.

PHP, được tạo ra bởi Rasmus Lerdorf vào năm 1995, là một trong những ngôn ngữ đầu tiên có thể được đưa vào mã HTML mà không cần phải gọi các tệp bên ngoài. Ngôn ngữ kịch bản có mục đích chung này ở phía máy chủ đã không ngừng phát triển để có thể được hỗ trợ bởi bất kỳ hệ điều hành hoặc nền tảng web nào. Hơn nữa, PHP tiếp tục phát triển và được xuất bản theo giấy phép PHP, giấy phép này không tương thích với Giấy phép Công cộng GNU do các hạn chế sử dụng của thuật ngữ PHP. 

PHP-FPM là gì và các tính năng của nó

PHP-FPM là cách triển khai thay thế phổ biến nhất của PHP FastCGI. Nó có các tính năng bổ sung thực sự hữu ích cho các trang web có lưu lượng truy cập cao. Đây là một số trong số họ:

Quản lý nâng cao cho phép dễ dàng dừng / bắt đầu các quy trình.

Khả năng bắt đầu worker với uid / gid / chroot / môi trường khác nhau và php.ini đa dạng ; nó thay thế safe_mode.

Ghi nhật ký stdout và stderr .

Khởi động lại khẩn cấp trong trường hợp vô tình phá hủy bộ nhớ cache opcode .

Hỗ trợ tăng tốc cho tải lên.

Cấu hình biến Slowlog ; để phát hiện chức năng nào mất nhiều thời gian để thực thi hơn bình thường.

Dựa trên các tệp cấu hình php.ini .

Cải tiến FastCGI, như fastcgi_finish_request () ; một chức năng đặc biệt để dừng và tải xuống tất cả dữ liệu trong khi bạn tiếp tục thực hiện một quy trình dài hơn, chẳng hạn như chuyển đổi video hoặc xử lý thống kê.

Số liệu thống kê cơ bản (tương tự như mô-đun mod_status của Apache ).

Nginx và PHP-FPM: một sự kết hợp hoàn hảo

Nginx, là một máy chủ web hiệu suất cao ổn định và có mức tiêu thụ tài nguyên rất thấp, là sự kết hợp hoàn hảo cho PHP-FPM. Nginx có kiến ​​trúc không đồng bộ có khả năng mở rộng hơn nhiều, dựa trên các sự kiện. Hơn nữa, khi sử dụng Nginx với PHP-FPM, hiệu suất ở mức tiêu thụ bộ nhớ được cải thiện.

PHP chạy như một dịch vụ riêng biệt khi sử dụng PHP-FPM. Bằng cách sử dụng phiên bản PHP này làm trình thông dịch ngôn ngữ, các yêu cầu được xử lý thông qua một ổ cắm TCP / IP; để máy chủ web Nginx chỉ xử lý các yêu cầu HTTP và PHP-FPM thông dịch mã PHP. Thực tế là có hai dịch vụ riêng biệt là chìa khóa để tăng hiệu quả.

HHVM: một giải pháp thay thế trước đây cho PHP-FPM

Hiện tại, HHVM không còn được sử dụng. Với sự xuất hiện của phiên bản PHP cuối cùng cùng với FPM, hiệu suất của ngôn ngữ này đã được cân bằng, hoặc thậm chí được cải thiện mà không cần sử dụng HHVM - tương thích với hầu hết các chức năng của PHP 7.

Cho đến khi PHP 7 xuất hiện, bộ xử lý PHP HHVM do Facebook phát triển và phát hành trên GitHub với giấy phép PHP và Zend thường được sử dụng. HHVM (HipHop Virtual Machine) là một máy ảo mã nguồn mở dựa trên trình biên dịch JIT (Just-in-Time), phục vụ như một công cụ thực thi cho PHP và Hack.

Bằng cách sử dụng nguyên tắc trình biên dịch JIT, HHVM thực thi mã PHP hoặc Hack trong mã Bytecode HipHop trung gian; một mã sau đó được dịch thành mã máy, được tối ưu hóa và thực thi nguyên bản. Điều này trái ngược với cách thực thi thông thường của PHP trong đó Zend Engine chuyển đổi mã nguồn PHP thành opcode (dạng bytecode); được thực thi bởi CPU ảo của Zend Engine.

PHP 7 và các phiên bản PHP trong tương lai

Sự xuất hiện của PHP 7 liên quan đến sự gia tăng đáng kể về hiệu suất so với các phiên bản PHP trước . Điều này làm cho các ứng dụng như HHVM, được sử dụng để tăng tốc dịch vụ, không còn được sử dụng. Trong trình so sánh PHP này , bạn có thể xem sự khác biệt giữa các phiên bản PHP đa dạng cho một số ứng dụng. Biểu đồ so sánh cho thấy hiệu suất đã tăng gần gấp đôi kể từ PHP 5.

Đối với phiên bản chính tiếp theo, PHP 8 , sự phát triển dường như tập trung vào việc tạo ra các chức năng mới thay vì cải thiện tốc độ đáng kể. Vì vậy, để tránh ứng dụng ngừng hoạt động sau khi cập nhật, khi cập nhật phải xem xét tính tương thích giữa các ứng dụng và các thay đổi có trong phiên bản mới.

WordPress với PHP-FPM

Nếu bạn có một nền tảng nội dung, báo mạng hay đơn giản là một WordPress cần hiệu suất cao và nhận được hàng nghìn hoặc hàng triệu lượt truy cập, thì rõ ràng là bạn cần một máy chủ Nginx có hỗ trợ PHP-FPM. Điều này sẽ cho phép bạn thiết lập việc thực thi mã PHP của CMS WordPress của bạn hiệu quả hơn nhiều . 

Magento với PHP-FPM

Nền tảng thương mại điện tử Magento cũng tích hợp tốt với Nginx và PHP-FPM . Trên thực tế, để đạt được hiệu suất tốt nhất trong cửa hàng trực tuyến của bạn, ngoài việc sử dụng bộ cân bằng và bộ nhớ đệm, điều quan trọng là sử dụng máy chủ web phổ biến này cùng với hỗ trợ cho PHP-FPM.

 

Đăng bởi Quang Minh 09-09-2021 53

Chuyên mục: Hỏi đáp
Tags: PHP-FPM
Các bài viết liên qua đến PHP-FPM là gì? Giải pháp cho trang web có lưu lượng truy cập cao.

Tin nổi bật Hỏi đáp

PHP-FPM là gì? Giải pháp cho trang web có lưu lượng truy cập cao.
PHP-FPM là gì? PHP-FPM (FastCGI Process Manager) là cách triển khai thay thế phổ biến nhất của PHP FastCGI