Frage:

Was ist der Unterschied zwischen Scripten, die als CGI oder als Apache-Modul laufen? Welche Methode hat welche Vor- und Nachteile?

Erklärung:

CGI ist eine definierte Schnittstelle (common gateway interface) zwischen Apache und beliebigen Script-Sprachen (oder auch Programmen). Die Scripte werden von Apache gestartet, sobald ein Request darauf erfolgt. D.h. das erst nach dem Request der Interpreter geladen wird, dann das eigendliche Script, dieses in einen Byte-Code/Token-Form übersetzt und dann erst ausgeführt wird.

Apache-Module sind vom Apache vorgeladene Module. Der Interpreter steht also bereits im Speicher bereit und wird zwischen den Requests auch nicht beendet. Daher kann das Modul sich auch Zustände, Variablen, Datenbank-Verbindungen, etc. merken.

Daraus folgt natürlich, daß Scripte als Apache-Module meist schneller ausgeführt werden können als per CGI.
(Und bevor jetzt eine andere Diskussion los geht: Es sagt aber nichts darüber aus, ob mod_php schneller/langsamer ist als Perl per CGI.)

Antwort:

Ich formulier es mal allgemein, da es neben mod_php auch mod_perl und mod_python gibt.

Vorteile als Modul: ("kann" heißt nicht, daß es das auch tut)

Nachteile als Modul:


Vorteile als CGI:

(Die letzten Beiden könnten bei Massenhostern auch als negativ angesehen werden.)

Nachteile als CGI:

(Die Listen sind bei noch nicht vollständig.)

Kategorien:

Stichwörter:

webserver · apache · cgi · modul · module · mod_php · mod_php4 · mod_php5 · mod_perl · mod_python · script ·