Câu trả lời:
Các câu hỏi hơi lạ một chút, không rõ là bạn chỉ hỏi PHP hay câu hỏi của bạn chung chung hơn.
Tôi sẽ cung cấp cho bạn một cái nhìn tổng quan ngắn gọn từ phía PHP.
Đầu tiên, hai giao thức:
Các tập lệnh CGI là cách chạy tập lệnh phía máy chủ khi có yêu cầu HTTP; điều này không liên quan gì đến PHP
FastCGI là một "CGI tốt hơn" - CGI được biết là chậm, Fast CGI là một cách tiếp cận khác với kết quả nhanh hơn nhiều; điều này cũng không có gì để làm với PHP.
Bây giờ những thứ liên quan đến PHP:
mod_php đang chạy PHP dưới dạng mô-đun Apache - đó là yêu cầu PHP được chạy theo quy trình Apache với mọi thứ đi kèm với nó - Các quy trình Apache được định nghĩa bởi cấu hình Apache, PHP được chạy với sự cho phép của Apache, v.v.
PHP-FPM là triển khai FastCGI của PHP; PHP-FPM chạy như một máy chủ FastCGI độc lập và Apache kết nối với máy chủ bằng mô-đun của Apache, thường là mod_fcgid hoặc mod_fastcgi; Cá nhân tôi nghĩ rằng điều này tốt hơn nhiều so với việc chạy như mod_php, nhưng nó phụ thuộc vào yêu cầu của bạn và cũng phức tạp hơn một chút; trong cấu hình này, sự cho phép, các quy trình liên quan và mọi thứ được chạy dưới cấu hình PHP, người dùng PHP, v.v. & Apache kết nối với PHP như với một máy chủ; trong cấu hình này, cũng có thể có nhóm máy chủ PHP và có máy chủ PHP trên máy khác về mặt vật lý so với Apache. Họ nói rằng điều này gần như nhanh như sử dụng mô-đun của Apache và có những lợi ích của việc kiểm soát tốt hơn cấu hình PHP.
SuPHP - điều này chủ yếu được sử dụng để giải quyết một số vấn đề về mod_php liên quan đến quyền; với các tập lệnh PHP mod_php được chạy dưới người dùng / nhóm Apache; mod_suphp có thể chạy các tập lệnh trong người dùng khác nhau; Tôi chưa bao giờ sử dụng nó, PHP-FPM bây giờ sẽ là sự lựa chọn tốt hơn nhiều
Nên về cơ bản: