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: Jak se zbavit nadměrného pocení?

Jak se zbavit nadměrného pocení?

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: Investice do drahých kovů - znáte základní chyby?

Investice do drahých kovů - znáte základní chyby?

Vitalia.cz: Signál roztroušené sklerózy: brnění končetin

Signál roztroušené sklerózy: brnění končetin

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

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

Vitalia.cz: Cheese&Chilli: předsudky o nudné britské kuchyni

Cheese&Chilli: předsudky o nudné britské kuchyni

Lupa.cz: Největší torrentový web KickassTorrents padl

Největší torrentový web KickassTorrents padl

Vitalia.cz: Klíšťata letos řádí, skvrna se udělá jen někomu

Klíšťata letos řádí, skvrna se udělá jen někomu

Měšec.cz: Kurzy platebních karet: vyplatí se platit? (TEST)

Kurzy platebních karet: vyplatí se platit? (TEST)

Podnikatel.cz: Od baletu k požární ochraně. A jiné rarity

Od baletu k požární ochraně. A jiné rarity

Podnikatel.cz: Co vše musíte udělat, než vypukne EET?

Co vše musíte udělat, než vypukne EET?

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

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

Podnikatel.cz: Polská vejce na českém pultu Albertu

Polská vejce na českém pultu Albertu

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

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

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

Tipy pro odvodnění organismu

120na80.cz: 7 překážek při odvykání kouření

7 překážek při odvykání kouření

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

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

Lupa.cz: IT scéna po brexitu: přijde exodus vývojářů?

IT scéna po brexitu: přijde exodus vývojářů?

Vitalia.cz: Cvičení tabata: na hubnutí i posilování?

Cvičení tabata: na hubnutí i posilování?

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

Skylink o půlnoci vypnul 12 525