Práva na sockety u PHP-FPM

2. 6. 2014 14:27 | Petr Krčmář

Rychlý blogpost pro ty, kteří se setkají se stejným problémem. Jak se mi aktualizací rozbilo PHP na serveru a jak jsem to opravil.

Dneska ráno jsem aktualizoval na serveru (Debian stable) balíčky s PHP na verzi 5.4.4–14+deb7u10. Důvodem byly nějaké bezpečnostní záplaty, které bránily v eskalaci práv kvůli chybné výchozí konfiguraci.

Po restartu PHP se ale ukázalo, že Nginx ječí 502 Bad gateway a že se prostě s PHP neumí domluvit. Velmi rychle jsem v logu web serveru objevil problém:

*709 connect() to unix:/var/run/php5-fpm.debian.sock failed (13: Permission denied) while connecting to upstream,

Všechny sockety PHP-FPM totiž měly jako vlastníka i skupinu roota, takže se není čemu divit, že se Nginx nedokázal připojit. Ovšem s konfigurací se nehýbalo a očividně se načítala, protože sockety se vytvořily, jen se k nim nenastavilo správné právo.

Procházel jsem všechno možné, ale nemohl jsem na to přijít. Určitou nápovědu dal až blogpost na NginxTips.com, kde autor popisuje stejný problém. Po nahlédnutí do výchozí konfigurace PHP-FPM v Debianu už to pak bylo jasné. Nově je třeba kromě určení uživatele, pod kterým běží worker, nastavit také uživatele socketu.

K původní konfiguraci ( /etc/php5/fpm/users.d/debian.conf):

[debian]
listen = /var/run/php5-fpm.debian.sock
user = debian
group = www-debian

Je tedy třeba připsat ještě další dva řádky:

listen.owner = debian
listen.group = www-debian

Pak budou uživatelé správně nastaveni a Nginx (pokud jeho worker používá stejného uživatele) se k datům dostane. Pro úplnost: ještě existuje volba listen.mode, která umožňuje nastavovat práva k souborům, výchozí stav 0660 je ale v pořádku, takže obvykle není nutné ji zapínat.

Vitalia.cz: Máte chutě? Nejezděte do světa, ale do Dobřichovic

Máte chutě? Nejezděte do světa, ale do Dobřichovic

Měšec.cz: Cestujte bez starostí, získejte výhodné pojištění

Cestujte bez starostí, získejte výhodné pojištění

Root.cz: Quake slaví 20 let novou epizodou zdarma

Quake slaví 20 let novou epizodou zdarma

Podnikatel.cz: 5 důvodů, proč vaše e-maily končí ve spamu

5 důvodů, proč vaše e-maily končí ve spamu

Lupa.cz: Text umírá, na webu zbude jen video

Text umírá, na webu zbude jen video

DigiZone.cz: Kritické poznámky k DVB-T2

Kritické poznámky k DVB-T2

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Podnikatel.cz: Eseróčko vs. živnost. Co vyhrává?

Eseróčko vs. živnost. Co vyhrává?

DigiZone.cz: ČTÚ květen: rušení TV vysílání narůstá

ČTÚ květen: rušení TV vysílání narůstá

Podnikatel.cz: Jeho dřevěné hodinky chtějí na všech kontinentech

Jeho dřevěné hodinky chtějí na všech kontinentech

DigiZone.cz: ČT veze bronz z klání televizní grafiky

ČT veze bronz z klání televizní grafiky

DigiZone.cz: TV Nova a její postoj k DVB-T2

TV Nova a její postoj k DVB-T2

Vitalia.cz: Jíme přesolené potraviny. Zrovna tyhle

Jíme přesolené potraviny. Zrovna tyhle

DigiZone.cz: Skylink: Nova Sport volně

Skylink: Nova Sport volně

Měšec.cz: Co s reklamací, když e-shop krachuje?

Co s reklamací, když e-shop krachuje?

DigiZone.cz: Nova: technické pauzy každé 1. pondělí

Nova: technické pauzy každé 1. pondělí

DigiZone.cz: Krajské televize na okraji zájmu?

Krajské televize na okraji zájmu?

Lupa.cz: Jaké IoT tarify nabízejí mobilní operátoři?

Jaké IoT tarify nabízejí mobilní operátoři?

Vitalia.cz: Epidemie: Klíšťová encefalitida po ovčím sýru

Epidemie: Klíšťová encefalitida po ovčím sýru

DigiZone.cz: Markíza: tady je předběžné opatření

Markíza: tady je předběžné opatření