Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Netzwerk<br />
PHP-FPM<br />
© Matee Nuserm, 123RF<br />
Der PHP-Interpreter PHP-FPM<br />
Ersatzspieler<br />
Apache-Webserver führen PHP-Programme meist <strong>mit</strong> dem Modul Mod-php aus. Das offizielle PHP-Paket enthält<br />
aber auch noch eine wenig beachtete Alternative namens PHP-FPM. Dieser PHP-Interpreter nutzt die FastCGI-<br />
Schnittstelle <strong>und</strong> besitzt einige äußerst interessante Eigenschaften. Tim Schürmann<br />
Wer in der PHP-Dokumentation das Kapitel<br />
zur Installation aufschlägt, stolpert<br />
als Erstes über das Apache-Modul »mod_<br />
php«. Es implantiert einen PHP-Interpreter<br />
in den Webserver Apache, der so<strong>mit</strong><br />
die PHP-Anwendungen selbst ausführen<br />
kann. Für Lighttpd <strong>und</strong> IIS beschreibt<br />
die Dokumentation einen PHP-Interpreter,<br />
der die FastCGI-Schnittstelle nutzt<br />
(siehe Kasten „CGI-Beschleuniger“).<br />
Administratoren sollten hier jedoch nicht<br />
schon <strong>mit</strong> dem Lesen aufhören, sondern<br />
sich noch etwas weiter durch das Kapitel<br />
graben, bis sie auf den FastCGI Process<br />
Manager stoßen. Dahinter verbirgt sich<br />
ein alternativer PHP-Interpreter, der ein<br />
paar gravierende Nachteile von »mod_<br />
php« <strong>und</strong> des herkömmlichen FastCGI-<br />
Interpreters beseitigt.<br />
»mod_php« ist zwar schnell eingerichtet<br />
<strong>und</strong> aktiviert, dafür läuft der Interpreter<br />
aber auch <strong>mit</strong> den Rechten des Webservers.<br />
Eine Änderung der Konfiguration<br />
erzwingt zudem einen Neustart des kompletten<br />
Webservers <strong>und</strong> sorgt so für einen<br />
Ausfall des Internetauftritts. »mod_php«<br />
skaliert zudem recht schlecht. Das bekommt<br />
man besonders zu spüren, wenn<br />
im Laufe der Zeit die Zugriffszahlen<br />
langsam ansteigen. Alle diese Nachteile<br />
waren auch Andrei Nigmatulin ein Dorn<br />
im Auge. Er entwickelte kurzerhand für<br />
den FastCGI-Interpreter einen Patch, der<br />
auch gleich noch ein paar vermisste Sicherheitsfunktionen<br />
nachrüstete. Dem so<br />
aufgebohrten Interpreter gab er den Namen<br />
FastCGI Process Manager oder kurz<br />
PHP-FPM [2].<br />
Sein Name ist dabei Programm: PHP-FPM<br />
startet gleich mehrere PHP-Interpreter-<br />
Prozesse, die ständig im Hintergr<strong>und</strong> laufen<br />
<strong>und</strong> auf Arbeit warten. Eingehende<br />
Anfragen nimmt PHP-FPM vom Webserver<br />
entgegen <strong>und</strong> verteilt sie an die PHP-<br />
Interpreter (siehe Abbildung 1).<br />
Um Server-Ressourcen zu sparen, beendet<br />
PHP-FPM alle gerade nicht benötigten<br />
Interpreter-Prozesse <strong>und</strong> würgt zu lange<br />
vor sich hinwerkelnde PHP-Interpreter-<br />
Prozesse ab. Darüber hinaus kann man<br />
die Konfiguration im laufenden Betrieb<br />
ändern, ohne einen Interpreter-Prozess<br />
oder gleich den ganzen Webserver neustarten<br />
zu müssen. Darüber hinaus bietet<br />
PHP-FPM erweiterte Log-Funktionen. So<br />
kann es beispielsweise alle Skripte protokollieren,<br />
die eine bestimmte Rechen-<br />
28 Ausgabe 06-2012 Admin www.admin-magazin.de