Skip to content

PHP: FPM-Backend offline nach Update

Nach dem Einspielen der heute bei Ubuntu 14.04 LTS veröffentlichten PHP-Updates für 5.5.9, blieb das PHP-Backend (FPM) für den Webserver nicht erreichbar. Seitenaufrufe meines Blogs resultierten in einem Fehlercode. Was war passiert?

Status 503 und 502

Der dem Webserver nginx vorgeschaltete Varnish meldete einen 503 Service Unavailable. Statische Inhalte funktionierten.

Ok, FPM ist wohl nicht erreichbar. ps aux | grep fpm zeigte allerdings, dass es läuft. Die Logfiles von nginx sind aufschlussreicher. Laut Accesslog wird 502 Bad Gateway an Varnish gemeldet. Das Errorlog gibt den entscheidenden Hinweis.

[crit] 1337#0: *169 connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: gnuheidix.de, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "gnuheidix.de"

Wie sich herausstellte, hatte der Unix Domain Socket mit root:root 660 für nginx unpassende Einstellungen.

Anpassung der Konfiguration

Die Prozesspool-Einstellung /etc/php5/fpm/pool.d/www.conf habe ich nach kurzer Recherche um folgende Zeilen erweitert.

listen.owner = daemon
listen.group = daemon
listen.mode = 0660

Diese Einstellung lässt die FPM-Worker den gleichen Nutzer und Gruppe nehmen wie nginx. Nach dem Durchstarten von FPM war mein Blog wieder vollständig erreichbar.

Hintergrund

FPM war nicht mehr zugreifbar, weil die Defaults, welche meine Konfiguration nutzte, geändert wurden. Im Rahmen von CVE 2014-0185 konnten beliebige Prozesse auf den Socket zugreifen. Dies ist im Ubuntu-Bugreport schön dokumentiert.

Meine FPM-Konfiguration war bis zum Zeitpunkt meiner heutigen Änderung nicht wasserdicht. Ich hatte es nicht gemerkt, weil der Default mit 0666 jedem Prozess Zugriffsrechte eingeräumt hatte.

Fazit

Gute Software erkennt man an sinnvollen und vorausschauend gewählten Defaulteinstellungen. PHP ist nun ein kleines Stückchen besser und ich ein bisschen achtsamer geworden. :-)

Kommentare

Frank am :

Das gleiche Problem trat beim Debian Wheezy Update des php-fpm Packetes auf...

Kommentar schreiben