PHP-FPM - Erro 503 - Falha na tentativa de conexão com soquete de domínio Unix

PHP-FPM - Erro 503 - Falha na tentativa de conexão com soquete de domínio Unix

Recebo estes erros no servidor (CentOs 7):

[proxy:debug] proxy_util.c(2209): [client 80.251.245.153:61902] AH00944: connecting fcgi://127.0.0.1/data/webs/dev/index.php to 127.0.0.1:8000
[proxy:debug] proxy_util.c(2246): [client 80.251.245.153:61902] AH02545: fcgi: has determined UDS as /tmp/php56-fpm.sock
[proxy:debug] proxy_util.c(2418): [client 80.251.245.153:61902] AH00947: connected /data/webs/dev/index.php to httpd-UDS:0
[proxy:error] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /tmp/php56-fpm.sock (*) failed
[proxy_fcgi:error] AH01079: failed to make connection to backend: httpd-UDS
[proxy:debug] proxy_util.c(2171): AH00943: FCGI: has released connection for (*)

Socket existe, tentei alterar as permissões para 777, mas não funcionou:

 ls -l /tmp/php56-fpm.sock
-rw-rw----. 1 apache apache 0 Feb 17 16:11 /tmp/php56-fpm.sock

Configuração de escuta PHP-FPM www.conf (o arquivo completo está aqui:https://pastebin.com/uD5GsMna):

ouça=/tmp/php56-fpm.sock

Host virtual:

<VirtualHost *:80>
   ServerName dev.stavebninyfranek.com
   DocumentRoot "/data/webs/dev"
   <FilesMatch "\.php$">
     SetHandler  "proxy:unix:/tmp/php56-fpm.sock|fcgi://127.0.0.1"
   </FilesMatch> 
 </VirtualHost>

Meus arquivos de configuração são (httpd.conf):https://pastebin.com/XS6cDuFQ

Tentei alterar o soquete, alterar a permissão para o usuário Apache: Apache, mas não sei onde está o problema.

Obrigado

Responder1

Isso é potencialmente causado pela configuração do systemd no Apache, no Centos 7, por exemplo, por padrão, o serviço é configurado com:

PrivateTmp=true

O que significa que ele obtém seu próprio subdiretório em /tmp visível como /tmp para que não possa ver arquivos em /tmp adicionados por outros programas. A solução seria não usar /tmp para seus soquetes php-fpm (mais seguro do que definir o valor acima como falso).

(Eu percebo que em pelo menos um caso um derivado do Debian está em uso, mas ele também usa o systemd!)

Paulie.

Responder2

altere usuário e grupo para seu usuário apache atual

/etc/php-fpm.d/www.conf 

** usuário e grupo devem ser iguais em/etc/http/conf/http.conf

Então execute

chown -R user.user /run/php-fpm/www.conf

** mude para seu usuário

Acredito que o que foi dito acima é para centOS, porque sou um cara Debian. Esta é na verdade uma das soluções para o problema 'serviço de erro 503 indisponível' causado pelo problema de permissão de sock do php8. Então sua meia no Apache estará em:

chown -R usuário.user /var/run/php/php8.1-fpm.sock

Responder3

Acabei de ter o mesmo problema depois de atualizar o Apache de 2.4.10 para 2.4.24. Com o apache antigo a conexão com o fcgi funcionava com um soquete no /tmp, enquanto o novo apache dava erro (2)No such file or directory. Mover o soquete para /var/runresolver o problema.

Olhando o código-fonte do mod_proxy, descobri que no apache mais recente o caminho deve ser relativo àquele especificado como DefaultRuntimeDir. Na minha configuração, isso está definido /etc/apache2/apache2.confe também usa alguma definição de /etc/apache2/envvars.

Responder4

Resolvi esse problema, quando usei

/var/run/php5-fpm.sock

em vez de /tmp/e está funcionando. Mas por que não posso usar outra pasta em vez de /var/run/?

informação relacionada