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.

120na80.cz: Tipy pro odvodnění organismu

Tipy pro odvodnění organismu

Podnikatel.cz: Italské těstoviny nebyly k mání, tak je začal vyrábět

Italské těstoviny nebyly k mání, tak je začal vyrábět

Podnikatel.cz: 3 velké průšvihy obchodních řetězců

3 velké průšvihy obchodních řetězců

Vitalia.cz: Pepsi Cola mění sirup za cukr

Pepsi Cola mění sirup za cukr

Lupa.cz: Pokémon GO není jediná rozšířená realita. Co dál?

Pokémon GO není jediná rozšířená realita. Co dál?

Lupa.cz: Největší pitominy s logem “nyní smart a připojené”

Největší pitominy s logem “nyní smart a připojené”

Měšec.cz: Do ostravské MHD bez jízdenky. Stačí vaše karta

Do ostravské MHD bez jízdenky. Stačí vaše karta

DigiZone.cz: Samsung uvolnil nástroj pro Tizen

Samsung uvolnil nástroj pro Tizen

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

DigiZone.cz: Test Noxon A560+: kvalitka do vaší věže

Test Noxon A560+: kvalitka do vaší věže

DigiZone.cz: Skylink o půlnoci vypnul 12 525

Skylink o půlnoci vypnul 12 525

DigiZone.cz: Android TV: s jakým pracuje rozlišením?

Android TV: s jakým pracuje rozlišením?

Vitalia.cz: Tohle je Břicháč Tom, co zhubnul 27 kg

Tohle je Břicháč Tom, co zhubnul 27 kg

DigiZone.cz: Sat novinky: Skylink skončil s kanály ČT

Sat novinky: Skylink skončil s kanály ČT

Podnikatel.cz: Prodej na Alibabě? Malí hráči utřou nos

Prodej na Alibabě? Malí hráči utřou nos

Vitalia.cz: Sobotní masakr žrádla, chlastu a zábavy

Sobotní masakr žrádla, chlastu a zábavy

Měšec.cz: Banky umí platby na kartu, jen to neříkají

Banky umí platby na kartu, jen to neříkají

DigiZone.cz: Oživení ekonomiky by mělo navýšit reklamu

Oživení ekonomiky by mělo navýšit reklamu

DigiZone.cz: Sázka na e-sporty stanici Prima vychází

Sázka na e-sporty stanici Prima vychází

Měšec.cz: Platíme NFC mobilem. Konečně to funguje!

Platíme NFC mobilem. Konečně to funguje!