24.02.2014 Aufrufe

ADMIN Magazin Gestapelt - Schneller und sicherer mit RAID (Vorschau)

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Netzwerk<br />

PHP-FPM<br />

listen.owner = www‐data<br />

listen.group = www‐data<br />

listen.mode = 0660<br />

Sie gibt den Besitzer (»listen.owner«),<br />

die Gruppe (»listen.group«) <strong>und</strong> die Zugriffsrechte<br />

(»listen.mode«) des Sockets<br />

vor. Anschließend startet dieser Befehl<br />

PHP-FPM neu:<br />

/etc/init.d/php5‐fpm restart<br />

01 <br />

Abbildung 6: Dieses Access-Log zeigt im oberen Bereich die Standard-Informationen <strong>und</strong> im unteren dann alle<br />

möglichen Daten über die Anfragen.<br />

Da<strong>mit</strong> Änderungen der PHP-Konfiguration<br />

wirksam werden, muss man den<br />

Apache-Server <strong>mit</strong> »mod_php« neustarten.<br />

Die gerade aktiven Benutzer erleben<br />

dann einen Verbindungsabbruch nebst einer<br />

Fehlermeldung. Anders bei PHP-FPM:<br />

Dort kann man die Konfiguration im laufenden<br />

Betrieb ändern. Das ist besonders<br />

nützlich, wenn man schnell die Anzahl<br />

der Interpreter-Prozesse in einem Pool<br />

hochschrauben oder weitere Pools hinzufügen<br />

möchte. PHP-FPM startet dann für<br />

neu eingehende Anfragen neue Prozesse<br />

<strong>mit</strong> der aktualisierten Konfiguration. Die<br />

noch laufenden alten Anfragen arbeiten<br />

die entsprechenden Prozesse noch ab, bevor<br />

PHP-FPM sie beendet. Einen solchen<br />

graceful Restart leitet<br />

/etc/init.d/php5‐fpm reload<br />

ein. Das bereits erwähnte:<br />

/etc/init.d/php5‐fpm restart<br />

löst hingegen einen herkömmlichen Neustart<br />

aus.<br />

Protokollant<br />

Die von einem Pool bearbeiteten Anfragen<br />

kann PHP-FPM zu Diagnosezwecken<br />

aufzeichnen. Dazu ergänzt man in der<br />

entsprechenden Konfigurationsdatei des<br />

Pools (wie der aus Listing 1) die Zeile:<br />

access.log = /var/log/$pool.access.log<br />

Nach dem Gleichheitszeichen folgt der<br />

Name der Log-Datei. Den Platzhalter<br />

»$pool« ersetzt PHP-FPM gegen den Namen<br />

des Pools. Standardmäßig landen im<br />

Protokoll die IP-Adresse, der Benutzername,<br />

die (Server-)Zeit, die Request-Methode,<br />

die angefragte Adresse (URI) <strong>und</strong><br />

der zurückgelieferte Status-Code. PHP-<br />

FPM kann zusätzlich aber auch die viel<br />

interessantere Ausführungszeit, die benötigte<br />

Prozessor-Belastung <strong>und</strong> den Query-<br />

String protokollieren. Man sollte deshalb<br />

gleich <strong>mit</strong> der zusätzlichen Zeile:<br />

access.format = "%R ‐ %u %t \"%m %r%Q%q\"U<br />

%s %f %{mili}d %{kilo}M %C%%"<br />

alle wichtigen Informationen zusammenstellen<br />

lassen (Abbildung 6). Wie ihr<br />

kryptischer Aufbau schon andeutet, kann<br />

man sich den Aufbau des Protokolls wie<br />

in Apache selbst zusammensetzen, die<br />

Buchstaben sind dabei Platzhalter für<br />

verschiedene Informationen. Welcher<br />

Platzhalter für welche Information steht,<br />

verraten die Kommentare in der <strong>mit</strong>gelieferten<br />

Beispiel-Datei.<br />

Optimierer<br />

Während das vorgestellte Access-Log<br />

sämtliche Anfragen aufzeichnet, landen<br />

im Slow-Log alle Anfragen, für die der<br />

PHP-Interperter zu lange benötigt hat.<br />

PHP-FPM führt ein solches Slow-Log für<br />

einen Pool, wenn man in der zugehörigen<br />

Konfigurationsdatei folgende Zeile<br />

ergänzt:<br />

slowlog = /var/log/$pool.log.slow<br />

»$pool« steht wieder für den Pool-Namen.<br />

Die folgende Zeile:<br />

request_slowlog_timeout = 30s<br />

legt dann noch fest, wann eine Anfrage<br />

zu lange in der Bearbeitung ist. In diesem<br />

Fall würde PHP-FPM eine Anfrage genau<br />

F Abbildung 7: Wie<br />

dieses Slow-Log<br />

auf deckt, verhindert<br />

eine »sleep()«-Anweisung<br />

in »info.php« die<br />

zügige Verarbeitung der<br />

Anfrage.<br />

32 Ausgabe 06-2012 Admin www.admin-magazin.de

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!