Die verschiedenen PHP-Modi

PHP kann auf verschiedene Arten laufen, darunter als Apache-Modul mod_php, als suPHP oder als Fast-CGI. Doch welche Version ist die beste für mich?

mod_php ist das native PHP-Modul für den Apache Webserver. Es ist sehr schnell, einfach zu konfigurieren, hat jedoch den Nachteil, dass es generell im Kontext des Webserver-Users (Standard: www-data) ausgeführt wird. Wird nur eine Website auf dem Webserver gehostet, stellt dies grundsätzlich kein Problem dar, bei mehreren Seiten kann so durch ein bösartiges PHP-Skript auch auf Daten von anderen Seiten auf dem selben Server zugegriffen werden. Die Sicherheit ist daher nicht wirklich hoch.

Besser sieht dies mit suPHP aus. suPHP arbeitet on-demand, d.h., wenn eine Anfrage kommt, dann wird ein neuer PHP-Prozess im Kontext des jeweiligen Benutzers gestartet. Auf diese Weise lassen sich mehrere Websites auf einem Webserver betreiben, ohne dass die Bearbeitung immer im Kontext www-data erfolgt.

Ähnlich arbeitet PHP, wenn es als Fast-CGI laufen gelassen wird. Auch hier werden die Anfragen im Kontext des jeweiligen Benutzers laufen gelassen, jedoch steht immer ein gewisser Pool mit PHP-Prozessen zur Verfügung, auf den zurückgegriffen werden kann. Dies hat den Vorteil, dass nicht jedes Mal ein neuer PHP-Prozess gestartet werden muss, was zu einer höheren Performance führt. Dieser Pool belegt seine Ressourcen jedoch auch dann, wenn die Seite nicht besucht wird, daher empfiehlt sich Fast-CGI hauptsächlich für High-Traffic Seiten, bei denen laufend die vorhandenen Ressourcen abgegriffen werden. Bei einer kleinen Websites mit ein paar Page Visits pro Tag lohnt sich Fast-CGI hingegen nicht, da dann die meiste Zeit des Tages über die Ressourcen gebunden sind, ohne genutzt zu werden.

suPHP und PHP im Fast-CGI-Modus sind ein wenig schwieriger zu Konfigurieren als im mod_php-Modus. Bei Webservern mit mehreren gehosteten Websites sollte jedoch kein Weg an einem der beiden Modi vorbeiführen.

Zusammengefasst und in Kürze:

  • Nur eine Website auf dem Webserver: mod_php
  • Mehrere Low-Traffic Websites auf dem Webserver: suPHP
  • Mehrere High-Traffic Websites auf dem Webserver: Fast-CGI

Schreibe einen Kommentar