it-swarm.com.de

Unterschiede und Nachteile zwischen: Fastcgi, CGI, Mod_php, PHP, PHP-FPM

Es gibt nur wenige verschiedene PHP "Wrapper" (?). Was sind Unterschiede zwischen ihnen? Versucht, einige zu googeln, kann aber keine Informationen finden. (mod-php ist nicht googleable).

Warum könnte ich einen anderen vorziehen?

82
Gacek

Die Fragen sind etwas seltsam. Es ist nicht klar, ob Sie nur nach PHP fragen oder ob Ihre Frage allgemeiner ist.

Ich werde Ihnen einen kurzen Überblick von der Seite PHP geben.

Zunächst 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 "besseres 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 verwandten Dinge:

  • mod_php führt ein PHP als Apache-Modul aus - das heißt, PHP Anfrage wird unter dem Apache-Prozess mit allem, was dazu gehört, ausgeführt - Apache-Prozesse werden von Apache definiert Konfiguration, PHP wird mit Apache-Berechtigung usw. ausgeführt.

  • 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, dass dies viel besser ist als das Ausführen als mod_php, aber es hängt von Ihren Anforderungen ab und ist auch etwas komplexer. In dieser Konfiguration, Berechtigung, verarbeitet verwandte Dinge und alles wird unter PHP Konfiguration, PHP Benutzer usw. ausgeführt. & Apache stellt eine Verbindung zu PHP wie zu einem Server her. In dieser Konfiguration ist es auch möglich, einen Pool von PHP Servern und einen PHP Server auf einem physisch anderen Computer als Apache zu haben. Sie sagen, dies sei fast so schnell wie die Verwendung des Apache-Moduls und es gebe Vorteile einer besseren Kontrolle über die Konfiguration von PHP.

  • SuPHP - Dies wurde hauptsächlich verwendet, um einige Probleme von mod_php im Zusammenhang mit Berechtigungen zu beheben. mit mod_php PHP Skripte werden unter dem Apache-Benutzer/der Apache-Gruppe ausgeführt. mod_suphp kann die Skripte in verschiedenen Benutzern ausführen. Ich habe es nie benutzt, PHP-FPM sollte jetzt eine viel bessere Wahl sein

Also im Grunde genommen:

  • CGI, Fast-CGI sind Protokolle; CGI ist langsam, Fast-CGI ist viel schneller
  • mod_php (mit Unterstrich) und PHP-FPM sind zwei grundlegende Methoden zum Ausführen von PHP
  • mod_SuPHP ähnelt mod_php, kann jedoch den Benutzer/die Gruppe ändern, unter dem der Prozess ausgeführt wird
154
Aleš Krajník