Peço desculpas antecipadamente se minha terminologia não estiver correta.
Acabei de configurar minha máquina de desenvolvimento de trabalho com sucesso no Fedora Workstation com Nginx e várias versões de PHP (usando a coleção de software de Remi Collet). Eu tenho o PHP-5.6.30 escutando na porta 9056 e o PHP-7.0.19 escutando na porta 9070. Isso funciona perfeitamente.
Esta manhã decidi tentar executar ambas as instâncias PHP usando FPM Sockets, que inicialmente funcionou até eu reiniciar o serviço PHP-FPM (isso resultou em um502 Bad Gatewayno navegador e(13) Permissão negadaerro no nginx error.log).
Então, usando o PHP5.6 como exemplo... quando iniciei o php56-php-fpm
serviço que gerou /opt/remi/php56/root/var/run/php-fpm/www.sock
, mudei o www.sock
usuário e o grupo do arquivo gerado para nginx:nginx
. Depois de reiniciar, php56-php-fpm
descobri que www.sock
estava sendo redefinido para root:root
. Agora, é verdade que não reiniciarei o FPM constantemente, mas deve haver uma maneira de definir alguns padrões no .sock
arquivo? Meus arquivos fpm conf são assim:
- /opt/remi/php56/root/etc/php-fpm.d/www.conf:https://pastebin.com/EasyHyEs
- /etc/opt/remi/php70/php-fpm.d/www.conf:https://pastebin.com/dhT8AEJK
- /etc/nginx/nginx.conf:https://pastebin.com/tMuAFnGM
- /etc/nginx/conf.d/default.conf:https://pastebin.com/UjkrcaYw
Sei que parece difícil trabalhar corretamente, considerando que estou fazendo isso apenas para o desenvolvimento local,eque tudo isso funcionou corretamente usando as portas 9056 e 9070. Mas li que há alguns benefícios de velocidade usando soquetes versus TCP, e vale a pena fazer um esforço para qualquer coisa que possa acelerar meu ambiente de desenvolvimento local.
Então, minhas perguntas:
- O que está incorreto em minha configuração que está fazendo com que www.sock seja redefinido
root:root
após reiniciar o respectivo serviço FPM? - Vale mesmo a pena abandonar as portas em favor dos soquetes?
- [um pouco fora do assunto]: usando a coleção de software de Remi Collet, vejo que os 2 pacotes PHP são instalados em locais diferentes:
/opt/remi/php56
e/etc/opt/remi/php70
... para fins de consistência, devo considerar mover um deles para um local mais comum?
Obrigado
Responder1
Algumas coisas para verificar...
1) Por padrão no CentOS o PHP não inclui os arquivos de configuração no php-fpm.d
diretório, certifique-se de tê-los include=/opt/remi/php56/root/etc/php-fpm.d/*.conf
no php-fpm.conf
arquivo.
2) Você precisa garantir que definiu a propriedade do soquete na configuração do pool php-fpm, por exemplo:
[www]
listen = /opt/remi/php56/root/var/run/php-fpm/$pool.sock
listen.owner = someuser
listen.group = somegroup
listen.mode = 0600
Responder2
No meu caso, no remi's php80-php-fpm
, tive que alterar listen.acl_users
a variável ../php-fpm.d/www.conf
para o usuário do meu servidor web. Por exemplo:
;comment: replace mywebserveruser with your own user
listen.acl_users = mywebserveruser