RAID-Technologie verspricht höhere Performance und mehr Sicherheit beim permanenten Speichern von Daten. Die ADMIN-Redaktion gibt einen Überblick über ... (mehr)

Elegante Neuauflage

Damit Änderungen der PHP-Konfiguration wirksam werden, muss man den Apache-Server mit »mod_php« neustarten. Die gerade aktiven Benutzer erleben dann einen Verbindungsabbruch nebst einer Fehlermeldung. Anders bei PHP-FPM: Dort kann man die Konfiguration im laufenden Betrieb ändern. Das ist besonders nützlich, wenn man schnell die Anzahl der Interpreter-Prozesse in einem Pool hochschrauben oder weitere Pools hinzufügen möchte. PHP-FPM startet dann für neu eingehende Anfragen neue Prozesse mit der aktualisierten Konfiguration. Die noch laufenden alten Anfragen arbeiten die entsprechenden Prozesse noch ab, bevor PHP-FPM sie beendet. Einen solchen graceful Restart leitet

/etc/init.d/php5-fpm reload

ein. Das bereits erwähnte:

/etc/init.d/php5-fpm restart

löst hingegen einen herkömmlichen Neustart aus.

Protokollant

Die von einem Pool bearbeiteten Anfragen kann PHP-FPM zu Diagnosezwecken aufzeichnen. Dazu ergänzt man in der entsprechenden Konfigurationsdatei des Pools (wie der aus Listing 1) die Zeile:

access.log = /var/log/$pool.access.log

Nach dem Gleichheitszeichen folgt der Name der Log-Datei. Den Platzhalter »$pool« ersetzt PHP-FPM gegen den Namen des Pools. Standardmäßig landen im Protokoll die IP-Adresse, der Benutzername, die (Server-)Zeit, die Request-Methode, die angefragte Adresse (URI) und der zurückgelieferte Status-Code. PHP-FPM kann zusätzlich aber auch die viel interessantere Ausführungszeit, die benötigte Prozessor-Belastung und den Query-String protokollieren. Man sollte deshalb gleich mit der zusätzlichen Zeile:

access.format = "%R - %u %t \"%m %r%Q%q\"%s %f %{mili}d %{kilo}M %C%%"

alle wichtigen Informationen zusammenstellen lassen (Abbildung 6). Wie ihr kryptischer Aufbau schon andeutet, kann man sich den Aufbau des Protokolls wie in Apache selbst zusammensetzen, die Buchstaben sind dabei Platzhalter für verschiedene Informationen. Welcher Platzhalter für welche Information steht, verraten die Kommentare in der mitgelieferten Beispiel-Datei.

Abbildung 6: Dieses Access-Log zeigt im oberen Bereich die Standard-Informationen und im unteren dann alle möglichen Daten über die Anfragen.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2020