por que o php-fpm está sendo executado como ninguém?

4

Instalei recentemente o php-fpm no meu servidor (padrão CENTOS 6.5 x86_64, WHM 11.44.1 (build 7)) seguindo as instruções aqui: link

A API do servidor, conforme revelada por phpinfo() , agora é FPM / FastCGI.

No entanto, quando executo um script php contendo exec('id') , recebo:

uid=99(nobody) gid=99(nobody) groups=99(nobody)

Tenho a impressão de que o php-fpm seria executado como o uid do proprietário do script php, em vez de ser o proprietário do processo http (como neste caso). Esta página link diz que o fpm tem a "capacidade de iniciar os funcionários com uid / gid / chroot / environment diferente e php.ini diferente (substitui o safe_mode ) ".

O que estou fazendo de errado?

    
por zaxxon 02.08.2014 / 11:00

1 resposta

4

O PHP-FPM não executa o script como o proprietário do script, mas como o usuário configurou na configuração do pool correspondente.

No meu sistema Debian, o conjunto padrão www é definido em /etc/php5/fpm/pool.d/www.conf e contém:

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = www-data
group = www-data

O seu provavelmente terá user=nobody e group=nobody . Você pode criar mais pools e usá-los atribuindo-os em suas configurações Apache / NGINX / whatever.

    
por 02.08.2014 / 12:26