[APACHE] SAPI vs. CGI
WauWau
- webserver
Hola mal wieder :-),
mal wieder Zeit - mal wieder posten. Ganz anschaulich wird mein Zeitmangel
wahrscheinlich dadurch sichtbar, dass meine Postings, die ich afaik erst vor
"kurzem" gestellt habe, schon im Archiv gelandet sind :-/
Na gut, wie der Titel schon sagt, geht es mal wieder um SAPI vs. CGI, dass heißt,
ich wollte mich nur mal ein bisschen informieren, da ich aufgrund des Quentchens
Zeit auch etwas an meinem Webserver machen werde (geplant ist speziell in Bezug
auf dieses SAPI/CGI-Zeugs ein C-Ersatz meines momentan noch in PHP geschriebenen
kleinen "Footers" für ne Menge Dateien (etwa 7.000 bis 10.000) - ich gehe mal
davon aus, dass ein kleines feines Programm dieser Aufgabe besser gewachsen ist
als mein PHP-Script.), daher ein bisschen WLF (Wissenslückenfüllen *bg*) - für die
WL's (naja, _diese_ Bedeutung ist dann ja wohl klar ;-).
Nungut, also auch weg vom WL&-F ;-) - zurück zu etwas ernsteren. Wie ich "vorher"
wusste, würde ein per CGI eingebundenes "CGI-Programm", z.B. PHP, bei jedem Aufruf
neu gestartet werden...(so sicher war ich mir da nie)..., was auf meinem IIS
sofern kein Problem war, da ich es damals sowieso noch besser für meinen PC fand,
erstens mal hatte ich keine Ahnung von irgendwas (Neudeutch: 'hatte keinen peil'
;-) - dazu kam, dass ich meinem PC halt nicht so einen "Ressourcenverbrauch" in
Punkto Webserver zumuten wollte - mein Apache "frisst" schließlich im "Leerlauf"
20MB von meinen wertvollen 256MB RAM (ich weiß nicht, in wie fern der Prozessor
dann noch eine Rolle spielt, ich gebe jetzt einfach mal Intel Pentium III 667MHZ
an)... was meiner Meinung nach zuviel ist, da mein Computer damit im Leerlauf über
50% Arbeitsspeicher belegt hat :-(, [zurück zum Hauptsatz]...im Gegensatz zu einem
per SAPI eingebundenen Programm, welches irgendwie im Hintergrund laufen würde [?]
noch, dass PHP per CGI einbinden sich mir unter dem Apache als ein extremer
Umstand erwies, da z.B. etliche Umgebungsvariablen plötzlich anstatt des
Scriptnamens "php.exe" hatten, usw. [später erwies sich dieses eigenartige
Verhalten des Apachen als überaus normal heraus, aber wer liest schon gerne
MB-große Manuals?] - entsprechend blieb mir gar nichts anderes übrig, als PHP per
SAPI einzubinden, welches nun in Etwa die gleichen Funktionen wie ein per CGI im
IIS eingebundenes PHP bieten konnte und kann.
So, nun mein "aktuelle[res|s] Wissen" - diesem läge sebstverständlich das "alte
Wissen" zugrunde, mit ein paar "Korrekturen", z.B. dass ein per SAPI eingebundenes
Programm im Gegensatz zu einem per CGI eingebundenen (btw "eingebundenes
Programm": Gemeint ist natürlich ein "CGI-Programm" bzw. vergleichbares, also wie
bereits oben gesagt so etwas wie PHP) nur einen neuen Prozess starten würde, oder
wie - nein, so war es: Der apache würde kein externes programm starten, sondern
einen eigenen "Kindprozess", in dem dann php.exe (in diesem beispiel halt immer
noch PHP) laufen würde. Dies erspare minimal weniger Prozesserauslastung, da nur
ein neuer Prozess gestartet wird, nicht ein Programm.
Wenn dies nun so sei, würde das bedeuten, wenn ich jetzt dazu noch Perl als SAPI reinladen würde (vielleicht "bekomme" ich bald DSL - dann würde es sich für mich erst einmal anbieten, ActivePerl; die Entwicklungsumgebung für Java und vieles mehr runterzuladen), hätte ich reintheoretisch nicht mehr prozesserauslastung nach dem motto "Programm läuft im hintergrund" - ooooder?
Hmm - vielen dank für freundliche antworten :-),
euer immerwährender WauWau
-- wuf wuf *scnr*