suPHP oder mod-php?
Aug 24th, 2008 by Björn
Jeder, der einen Server sein eigenen nennt, wird frueher oder später sicher über diese Frage stolpern.
Oftmals wird bei einer Standardinstallation mod-php verwendet. Ich denke einmal, das ca. 80% solcher Root-Server mit mod-php laufen.
Was genau ist aber suPHP jetzt? In der “normalen” Installation wird PHP mit mod-php unter den Rechten des Webservers ausgeführt. Oftmals macht dies, gerade in Verbindung mit dem Safe-Mode und den daraus resultierenden Einschränkungen, Probleme und führt zu einem unhandlichen Arbeiten. Durch die Rechtesetzung mit den Rechten des Webservers kommt es zu Problemen, gerade wenn man dann versucht, Dateien oder Verzeichnisse, welche von PHP erstellt wurden, zu löschen oder zu ändern. Hier setzt suPHP an und dessen Scripte laufen jeweils unter der Kennung des Accountbenutzers. Dieses kleine Detail bringt aber ein mehr an Sicherheit mit sich.
Ich habe jetzt etwas mehr als ein Jahr verschiedene Systeme mit suPHP und mit mod-php laufen. In Punkto Sicherheit ein klarer Vorsprung bei suPHP, gerade wenn sich mehrere User den Server teilen und man wenig Einfluss auf die Skripte seines Nachbarn hat.
Von daher spricht nichts dagegen, suPHP zu verwenden. Nun kommt das grosse ABER!
suPHP laeuft als CGI, was zu einer erhöhten Systembelastung und auch zu einem Perfomancen-Verlust führen kann. Und das nicht nur theoretisch. Mittlerweile bin ich aufgrund der Erfahrung dazu übergegangen, Systeme wieder gemischt zu verwenden, eine reine Umsetzung aller Server auf suPHP habe ich verworfen. Hintergrund ist der doch deutliche und teilweise dramatische Einbruch in der Leistung und die damit verbundene Beanspruchung des Servers.
Ich habe insgesamt ueber ein halbes Jahr getestet und beobachtet, welche Auswirkungen suPHP auf die Leistung hat. Das System mit mod-php kann (und macht es auch) deutlich mehr bringen, als ein vergleichbares System mit suPHP.
Vielleicht kann mir der eine oder andere seine Erfahrungen berichten, eventuell weiss ja jemand auch Tipps zur Optimierung