Antworten:
Die Fragen sind etwas seltsam, es ist nicht klar, ob Sie nur nach PHP fragen oder Ihre Frage allgemeiner ist.
Ich werde Ihnen einen kurzen Überblick von der PHP-Seite geben.
Erstens sind die beiden Protokolle:
Mit CGI-Skripten können Sie ein serverseitiges Skript ausführen, wenn eine HTTP-Anforderung eingeht. das hat nichts mit PHP zu tun
FastCGI ist ein "besserer CGI" - CGI ist bekanntermaßen langsam, Fast CGI ist ein anderer Ansatz mit viel schnelleren Ergebnissen. das hat auch nichts mit PHP zu tun.
Nun die PHP-bezogenen Dinge:
mod_php führt ein PHP als Apache-Modul aus - das heißt, die PHP-Anforderung wird unter dem Apache-Prozess mit allem ausgeführt, was dazu gehört - Apache-Prozesse werden durch die Apache-Konfiguration definiert, PHP wird mit Apache-Erlaubnis ausgeführt usw.
PHP-FPM ist die FastCGI-Implementierung von PHP. PHP-FPM wird als eigenständiger FastCGI-Server ausgeführt und Apache stellt über das Apache-Modul, normalerweise mod_fcgid oder mod_fastcgi, eine Verbindung zum Server her. Ich persönlich denke, das ist viel besser als das Ausführen als mod_php, aber es hängt von Ihren Anforderungen ab und ist auch etwas komplexer. In dieser Konfiguration werden Berechtigungen, Prozesse, verwandte Dinge und alles unter PHP-Konfiguration, PHP-Benutzer usw. ausgeführt. & Apache verbindet sich mit PHP wie mit einem Server. In dieser Konfiguration ist es auch möglich, einen Pool von PHP-Servern und einen PHP-Server auf einem anderen Computer als Apache zu haben. Sie sagen, dies ist fast so schnell wie die Verwendung des Apache-Moduls und es gibt Vorteile einer besseren Kontrolle über die PHP-Konfiguration.
SuPHP - Dies wurde hauptsächlich verwendet, um einige Probleme von mod_php im Zusammenhang mit Berechtigungen zu beheben. mit mod_php werden PHP-Skripte unter dem Apache-Benutzer / der Apache-Gruppe ausgeführt; mod_suphp kann die Skripte in verschiedenen Benutzer ausführen; Ich habe es nie benutzt, PHP-FPM sollte jetzt eine viel bessere Wahl sein
Also im Grunde genommen: