Unterschied von PHP als Modul oder CGI ?

Bash, Shell, PHP, Python, Perl, CGI
mezga
Posts: 147
Joined: 2002-12-10 13:59

Unterschied von PHP als Modul oder CGI ?

Post by mezga »

Hallo,

hab da mal ne kleine Frage. Vielleicht gehört das auch ins Newbie-Forum, aber ich denke das ist dann doch schon ne "tiefere" Newbiefrage...

Was ist der Unterschied zwischen PHP als Modul in Apache oder als CGI in Apache ?

Also was kann das Eine besser(oder schlechter) als das Andere ?

Durch die Suchfunktion hab ich schon rausbekommen das PHP bei compilieren die Modul und die CGI Variante erstellt.

Auf meinem Testrechner hab ich das mod_php4.so in die httpd.conf reingeschrieben (also modulversion) und jetzt interessiert mich allerdings auch noch wie dann die CGI Version gestartet oder eingebunden werden muss. Also die mod_php4.so brauch ich ja dann warscheinlich nicht mehr, was brauch ich aber dann ?

Muss ich an den vorhandenen PHP Dateien irgendwas verändern damit die dann laufen?

Danke schon mal für die Antworten !
jamesb
Posts: 661
Joined: 2002-05-08 15:35
Location: Karlsruhe

Re: Unterschied von PHP als Modul oder CGI ?

Post by jamesb »

Also, die Modulversion hat den Vorteil, dass sie nur einmal geladen werden muss und somit in den meisten Fällen schneller ist als die CGI-Version. Außerdem ist sie wesentlich einfacher zu konfigurieren.

Die CGI-Version funktioniert sozusagen wie ein Perl-Script, wobei der PHP-Interpreter erst aufgerufen wird, wenn ein PHP-Script ausgeführt werden soll. Das hat den Nachteil, dass es langsamer ist als die Modul-Version, aber wenn du nicht eine Riesen-Seite betreibst, wo es auf jeden Prozessortakt ankommt, ist das wurscht.

Der große Vorteil der CGI-Version ist, dass du die PHP-Scripte als einen anderen User ausführen lassen kannst als unter dem der Apache läuft (Also statt wwwrun unter dem User web1). Das hat z.B. Vorteile bei der Sicherheit, auch bei der Stabilität kann es Vorteile haben (dadurch dass jedes PHP-Script von einem eigenen Interpreter ausgeführt wird, und nicht von einem einzigen).

Die CGI-Version kannst du auf verschiedene weisen in den Apache einbinden, z.B. per suexec, ich empfehle aber suPHP, welches extra für diesen Zweck geschrieben wurde (suexec ist allgemein für Scripte gedacht). Die Konfiguration ist denkbar einfach und in den Hilfedateien von suPHP beschrieben. Download gibt's unter http://www.suphp.org

Ok, das war's erstmal so als "kurzer" Ã?berblick.

JamesB
mezga
Posts: 147
Joined: 2002-12-10 13:59

Re: Unterschied von PHP als Modul oder CGI ?

Post by mezga »

Danke. Jetzt isses klar für was ich suPHP brauche :)

Danke nochmal !