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.

DigiZone.cz: E! a zákulisí turné Mariah Carey

E! a zákulisí turné Mariah Carey

Podnikatel.cz: Novela zákoníku práce. Řeší homeworking

Novela zákoníku práce. Řeší homeworking

Podnikatel.cz: Pozor na vykuky, imitují služby České pošty

Pozor na vykuky, imitují služby České pošty

DigiZone.cz: Jetelín končí. Prima ho vyřadila

Jetelín končí. Prima ho vyřadila

Lupa.cz: Hackujete? Můžete mít problém sehnat práci

Hackujete? Můžete mít problém sehnat práci

Vitalia.cz: Galerie: Strouhanka ze starých rohlíků? Kdepak

Galerie: Strouhanka ze starých rohlíků? Kdepak

Měšec.cz: Co když na dovolené přijdete o kartu?

Co když na dovolené přijdete o kartu?

Podnikatel.cz: Kauza z Vinohrad pokračuje. Policie se omlouvá

Kauza z Vinohrad pokračuje. Policie se omlouvá

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

DigiZone.cz: Další rána pro piráty: 6 měsíců

Další rána pro piráty: 6 měsíců

Lupa.cz: Nechcete datacentrum? Jsou na prodej

Nechcete datacentrum? Jsou na prodej

Vitalia.cz: 9 potravin, které nesmí chybět v jídelníčku těhotné

9 potravin, které nesmí chybět v jídelníčku těhotné

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

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

Root.cz: Xiaomi má vlastní notebook podobný Macu

Xiaomi má vlastní notebook podobný Macu

Podnikatel.cz: Youtuber? Za 15 tisíc dělat nebude

Youtuber? Za 15 tisíc dělat nebude

DigiZone.cz: Digi Slovakia: Eurosport 1 i 2 v HD

Digi Slovakia: Eurosport 1 i 2 v HD

Lupa.cz: Kdo vykrádá LinkedIn? Zjistit to má soud

Kdo vykrádá LinkedIn? Zjistit to má soud

120na80.cz: Víte, co je svobodná menstruace?

Víte, co je svobodná menstruace?

Měšec.cz: Investiční pasti. Děláte to, co ostatní, ale proděláváte

Investiční pasti. Děláte to, co ostatní, ale proděláváte

Lupa.cz: Samořídicí taxíky jsou tu. Začíná s nimi Uber

Samořídicí taxíky jsou tu. Začíná s nimi Uber