[Technik] PHP als FastCGI
Christof Donat
cdonat at gmx.de
Fri Jul 28 11:54:18 CEST 2006
Hi,
> kennt jemand Funktionsunterschiede zwischen FastCGI <-> mod_php und
> FastCGI <-> CGI?
> Oder URL, oder ...
CGI:
Bei jedem Aufruf wird ein externes Programm aufgerufen (das CGI-Skript).
Natürlich muss dafür ein eigener Prozess erzeugt werden, das Programm in den
Speicher geladen und initialisiert werden. Dann fängt das Programm erst mal
an, sich zurechtzufinden, Libraries nachzuladen, etc. CGI ist sehr flexibel,
wird von fast jedem HTTP-Server unterstützt. Dafür ist es eben sehr langsam.
FastCGI:
Ein Versuch, die Schwächen von CGI zu umgehen. FastCGI-Skripte können wie
normale CGI-Skripte funktionieren, dann gibt es aber auch keinen Vorteil.
Alternativ können sie nach der ersten Anfrage in eine Endlosschleife
eintreten und Anfragen entgegennehmen. Solche Programme müssen nur einmal
geladen und initialisiert werden, können ihre Libraries, etc. im Speicher
halten und können z.B. zwischenergebnisse Cachen und beim nächsten mal darauf
zurückgreifen. Mit solchen Programmen ist FastCGI sehr viel
ressourcenschonender als CGI. Andererseits wird FastCGI nicht von so vielen
Servern unterstützt.
mod_php:
Allgemeiner Apache-Module. Apache Module sind Libraries, die dem Apache
zusätzliche Funktionalität zur Verfügung stellen. Die Funktionalität (die
Library) wird schon beim Start von Apache geladen und initialisiert. Es muss
kein zusätzlicher Prozess erzeugt werden, weil die Module innerhalb des
jeweiligen Apache-Prozesses laufen. Die Module können auch direkt aufgerufen
werden und es ist keine inter-Prozess-Kommunikation nötig. Apache-Module
laufen noch deutlich ressourcenschonender als FastCGI, dafür aber eben nur in
Apache - und selbst da sind die Module nicht alls zwischen den Versionen 1
und 2 austauschbar.
Hoffe ausreichend zur entgültigen Verwirrung beigetragen zu haben :-)
Christof
More information about the Technik
mailing list