de.comp.lang.php.* FAQ

5.4. CGI PHP oder Modul?

Antwort von Kristian Köhntopp

Siehe auch Webserver verstehen und tunen von Kristian Köhntopp.

Jedes Mal, wenn eine Seite mit PHP-Code darauf ausgeführt werden muss, muss der PHP-Interpreter gestartet werden. Wird PHP als CGI-Programm installiert, bedeutet dies, dass am Anfang der Seite ein neuer Prozess erzeugt werden muss und der PHP-Interpreter in diesen Prozess geladen werden muss. Dies verbraucht eine ganze Menge Systemressourcen. Am Ende der Seite endet auch der Interpreterprozess und aller Speicher wird freigegeben. Ebenso werden alle Filehandles geschlossen und damit alle Datenbankverbindungen aufgegeben.

Installiert man PHP dagegen als Modul, etwa in einem Apache-Webserver, dann ist das PHP-Modul Bestandteil des Webservers und ständig geladen. Es kann außerdem Datenbanklinks über die Lebensdauer einer PHP-Seite hinaus offen halten, was speziell bei Oracle-Datenbanken große Performancevorteile bringt.

Nur mit einem CGI-PHP ist es möglich, PHP als Scriptsprache zur Erstellung von "Shellscripten" einzusetzen.

Viele Massen-Webhoster setzen bevorzugt CGI-PHP ein, weil es sich leichter auf eine Weise installieren lässt, die die Systemsicherheit nicht gefährdet. CGI-PHP erlaubt den Einsatz der Apache-Erweiterung suexec, die Erstellung einer chroot()-Umgebung und die bessere Kontrolle der durch den Anwender verbrauchten Systemressourcen.

Praktisch alle großen PHP-Sites setzen PHP als Modul ein, weil die Performance hier deutlich besser ist.

Valid HTML 4.01! Valid CSS!

5.4. CGI PHP oder Modul?
http://www.php-faq.de/q/q-php-cgi-vs-modul.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team