Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
dann im Slow-Log vermerken, wenn ein<br />
PHP-Interpreter auch nach über einer<br />
halben Minute noch keine Antwort geliefert<br />
hat (Abbildung 7). Alternativ zu<br />
»s« für Sek<strong>und</strong>en kann man die Zeit auch<br />
in Minuten (Kürzel »m«), St<strong>und</strong>en (»h«)<br />
<strong>und</strong> Tagen (»d«) angeben.<br />
Seine eigenen Probleme <strong>und</strong> interne Fehler<br />
schreibt PHP-FPM übrigens standardmäßig<br />
in die Datei »/var/log/php5‐fpm.<br />
log«. Darin findet man auch Hinweise auf<br />
fehlerhafte Konfigurationsdateien.<br />
Schwedische Gardinen<br />
Wer sich um die Sicherheit seines Webservers<br />
schert, kann alle Interpreter-<br />
Prozesse eines Pools in eine sogenannte<br />
Chroot-Umgebung stecken. Dazu genügt<br />
die Zeile:<br />
chroot = /mein/gefaengnis<br />
in der Konfigurationsdatei des Pools.<br />
Hinter dem Gleichheitszeichen steht der<br />
absolute Pfad, der dann für die Prozesse<br />
zum neuen Root-Verzeichnis wird – in<br />
diesem Beispiel »/mein/gefaengnis«.<br />
Den aktuellen Ges<strong>und</strong>heitszustand eines<br />
Pools kann man über eine spezielle<br />
Status-URL abfragen. Dazu ergänzt man<br />
in der Pool-Konfiguration (aus Listing 1)<br />
die Zeile:<br />
pm.status_path = /status<br />
Da<strong>mit</strong> erfährt man später unter »http://<br />
www.example.com/status« unter anderem,<br />
ob die Prozesse des Pools gerade<br />
laufen <strong>und</strong> wie viele Anfragen sie bereits<br />
beantwortet haben. Standardmäßig<br />
liefert PHP-FPM die Informationen als<br />
reinen Text zurück. Man kann sie sich<br />
aber auch in HTML oder XML verpacken<br />
lassen. Dazu hängt man einfach an die<br />
URL ein »?html« beziehungsweise »?xml«<br />
an. Mit der Zeile:<br />
ping.path = /ping<br />
kann man später unter »http://www.example.com/ping«<br />
schnell prüfen, ob der<br />
Pool läuft. In diesem Fall gibt PHP-FPM<br />
ein schlichtes »pong« zurück. Doch Vorsicht:<br />
Nach diesen Informationen lecken<br />
sich auch Angreifer die Finger. Man sollte<br />
die Funktion daher im produktiven Betrieb<br />
möglichst deaktiviert lassen oder<br />
zumindest den Zugriff durch den Webserver<br />
einschränken.<br />
Wenn ein Interpreter-Prozess zu lange<br />
an einem PHP-Script knabbert, beendet<br />
PHP-FPM ihn automatisch. Nach wie vielen<br />
Sek<strong>und</strong>en, legt in der Konfigurationsdatei<br />
»/etc/php5/fpm/php‐fpm.conf« die<br />
folgende Zeile fest:<br />
process_control_timeout = 10s<br />
Reagiert hier ein Prozess 10 Sek<strong>und</strong>en<br />
lang nicht, beendet PHP-FPM ihn automatisch.<br />
Auch hier gelten wieder die<br />
Abkürzungen »m« für Minuten, »h« für<br />
St<strong>und</strong>en <strong>und</strong> »d« für Tage.<br />
Parallelverarbeitung<br />
PHP-FPM stellt eine neue PHP-Funktion<br />
»fastcgi_finish_request()« bereit. Wie ihr<br />
Name schon andeutet, beendet sie die<br />
Anfrage, das Skript läuft hingegen im<br />
Hintergr<strong>und</strong> noch weiter. Ein Beispiel für<br />
ihren Praxiseinsatz zeigt Listing 3. »fastcgi_finish_request()«<br />
existiert allerdings<br />
nur in PHP-FPM, auf anderen PHP-Interpretern<br />
läuft das Skript nicht.<br />
Fazit<br />
PHP-FPM selbst erhöht die Sicherheit<br />
<strong>und</strong> skaliert gut, beschleunigt durch seine<br />
Arbeitsweise aber nicht automatisch die<br />
Auslieferungszeiten gegenüber dem herkömmlichen<br />
FastCGI-Interpreter. Die im<br />
Internet veröffentlichten beeindruckenden<br />
Zahlen vergleichen meist Apache 2<br />
inklusive »mod_php« <strong>mit</strong> einem schlanken<br />
Webserver wie Ngnix <strong>und</strong> PHP-FPM.<br />
Wer also die Antwortgeschwindigkeit<br />
insgesamt erhöhen möchte, muss noch<br />
weiter optimieren. (ofr)<br />
n<br />
Infos<br />
[1] FastCGI: [http:// www. fastcgi. com]<br />
[2] PHP-FPM: [http:// php‐fpm. org/]<br />
[3] PHP-FPM im PHP-Manual: [http:// php. net/<br />
manual/ en/ install. fpm. php]<br />
[4] Mod-Fastcgi:<br />
[http:// www. fastcgi. com/ dist/]<br />
Der Autor<br />
Tim Schürmann ist selbstständiger Diplom-<br />
Informatiker <strong>und</strong> derzeit hauptsächlich als freier<br />
Autor unterwegs. Zu seinen Büchern gesellen<br />
sich zahlreiche Artikel, die in Zeitschriften <strong>und</strong><br />
auf Internetseiten in mehreren Ländern veröffentlicht<br />
wurden.<br />
ESET<br />
ENDPOINT<br />
LÖSUNGEN<br />
ITPROFIS VERTRAUEN<br />
AUF ESET.<br />
„Im Laufe der Jahre <strong>und</strong> Testreihen<br />
zeigte sich immer wieder, dass ESET<br />
leistungsfähige Sicherheitslösungen<br />
<strong>mit</strong> geringster Systembelastung<br />
entwickelt.“ (Andreas Clementi,<br />
Gründer <strong>und</strong> Vorsitzender bei AV-<br />
-Comparatives)<br />
Erstklassiger Schutz für Ihre<br />
Endpoints <strong>mit</strong> der mehrfach ausge-<br />
zeichneten Erkennungstechnologie,<br />
cloudbasiertem Scan, Webkontrolle<br />
<strong>und</strong> Remote Administration.<br />
www.eset.de<br />
www.admin-magazin.de<br />
Ausgabe 06-2012<br />
33