Antworten:
Mit mod_php hat jeder Apache-Worker den gesamten PHP-Interpreter geladen. Da Apache pro eingehender Anforderung einen Worker-Prozess benötigt, sind schnell Hunderte von Apache-Workern im Einsatz, von denen jeder seinen eigenen PHP-Interpreter geladen hat und sehr viel Speicher benötigt.
(Beachten Sie, dass dies nicht genau der Fall ist. Mit Apache worker_mpm
können Sie viele Anfragen mit einem einzigen Apache-Worker mit Thread bearbeiten. Dies ist jedoch auch im Jahr 2009 nicht die empfohlene Methode zur Bereitstellung von PHP, da vermutete Threading-Probleme mit den PHP-Erweiterungen vorliegen.)
Die Verwendung von PHP im fast_cgi-Modus (die Verwendung von spawn-fcgi aus dem lighttpd-Paket) bietet die folgenden Vorteile
FastCGI bedeutet, dass die PHP-Bits im Gegensatz zu mod_php nicht im selben Prozess wie die Apache-Bits ausgeführt werden. Diese Trennung kann einige eindeutige Vorteile haben, wenn es darum geht, den Server neu zu starten oder mit außer Kontrolle geratenen Anwendungen umzugehen. Im Fall von mod_php bedeutet dies, dass der Apache-Prozess außer Kontrolle gerät Der gesamte Server muss nicht heruntergefahren werden.
Ein weiterer Vorteil, der noch nicht erwähnt wurde, ist die Tatsache, dass mit mod_fcgid
(eine neuere Implementierung für die Verwendung von FastCGI unter Apache) und suexec Setups realisiert werden können, bei denen verschiedene vhosts verschiedene Linux-Benutzer zur Ausführung verwenden, was in einem gemeinsam genutzten Hosting-Szenario ein echter Sicherheitsvorteil sein kann .
Mit mod_php teilen sich alle vhosts denselben Benutzer, den Apache-Benutzer. Dies kann zu Sicherheitsproblemen führen.