Como posso descobrir por que meu php5-fpm falhou ao iniciar?

10

Eu recebo o tempo limite do gateway 504 quando tento acessar meu servidor uma pequena verificação não encontrou nenhum registro nos logs php5-fpm, mas, apenas para garantir, tentei reiniciá-lo. quando estou tentando reiniciar:

sudo service php5-fpm restart

eu recebo, [fail] mas quando eu faço

sudo service php5-fpm stop
sudo service php5-fpm start

Não recebo nenhum erro.

como posso investigar se não houver logs? o que eu posso fazer?

Liad Livnat
fonte

Respostas:

17

Você verificou seu arquivo error_log quanto ao php-fpm ? A localização desse arquivo deve ser declarada no seu php-fpm.conf (na configuração do Ubuntu é /etc/php5/fpm/php-fpm.conf, o arquivo de log é / var / log / php5-fpm / log), verifique também o seu log_level , se estiver desativado (; log_level), ative-o e altere-o para depuração . Depois disso, tente reiniciar o serviço php5-fpm e verifique seus logs.

Você também pode tentar executar o php5-fpm no modo de primeiro plano:

# php5-fpm -y /etc/php5/fpm/php-fpm.conf

Talvez isso mostre algo interessante.

preso
fonte
1
No meu caso, esse comando iniciou o php5-fpm, enquanto service php5-fpm startnão. Obrigado!
David Thomas
Davis, parece funcionar para mim +1! Mas .. preso me deu a solução, encontrei algum erro +1! obrigado a todos!
precisa
Se você iniciar o FPM usando uma tarefa inicial, os logs de inicialização do php-fpm serão gravados em / var / log / upstart /
Ashwin Date
Para uso do php7.0php-fpm7.0 -F -c /etc/php/7.0/fpm/php-fpm.conf
Yadvendar 8/17
4

Procedimento padrão para solução de problemas:

  • Verifique o arquivo de log. Se você não sabe onde está, verifique a configuração ou, com certeza, encontre o pid com ps aux | grep php-fpm, então faça lsof -p $PID | grep log(omita o grep se ele não mostrar nada).
  • 99% do tempo os arquivos de log mostrarão a causa. Caso contrário, procure um nível de log na configuração, aumente-o e tente novamente.
  • Talvez pare instantaneamente e você não possa obter o PID para inspecionar o processo. Você também pode tentar iniciar o processo em primeiro plano, mas isso significa descobrir quais opções de linha de comando você precisa usar. Normalmente você só precisa apontar para a sua configuração existente.
  • Se nem o arquivo de log nem o stdout / stderr (saída em primeiro plano) contiverem pistas, é hora de rastrear ... mas isso é outra postagem.
Alex Forbes
fonte
+1 ótima maneira de encontrar o arquivo de log!
deweydb
3

Esta nota me ajudou: https://bugs.launchpad.net/nginx/+bug/1366651

No meu caso, atualizando para o nginx> 1.6.1, os parâmetros passados ​​para o php5-fpm estão localizados no fastcgi.conf em vez de no fastcgi_params, resultando em um PHP que sempre retorna 200 (ok), mas nunca em nenhum conteúdo, porque o SCRIPT_FILENAME não estava mais definido.

Espero que também ajude alguém.

Sebastiaan van Doorn
fonte
2

Para mim, o problema era que meu php-fpm.confarquivo não estava usando o nome de arquivo de configuração padrão - ele foi nomeado /etc/php5/fpm/php5-fpm.conf( php5-fpm.confvs php-fpm.conf)

php5-fpm -t  

[26-Jul-2014 22:39:16] ERROR: failed to open configuration file '/etc/php5/fpm/php-fpm.conf': No such file or directory (2)
[26-Jul-2014 22:39:16] ERROR: failed to load configuration file '/etc/php5/fpm/php-fpm.conf'
[26-Jul-2014 22:39:16] ERROR: FPM initialization failed

Renomeei o arquivo conf para php-fpm.confe isso corrigiu o problema.

sudo mv /etc/php5/fpm/php5-fpm.conf /etc/php5/fpm/php-fpm.conf
sudo service php5-fpm restart
 * Restarting PHP5 FastCGI Process Manager php5-fpm                                                                           [ OK ]
David Thomas
fonte
0

Experimentei esse problema de não haver arquivos de log e notei que estava acessando a URL por HTTPS em vez de HTTP e que o protocolo não havia sido configurado no Nginx, portanto o PHP5-FPM não estava recebendo tráfego.

Pode ajudar alguém.

Dave Hilditch
fonte
0

Pode acontecer que, em uma atualização distinta do Ubuntu, o pacote php5-fpm seja desinstalado porque o php 7 usa o php-fpm. tente executar isso no console:

php5-fpm

Se não existir, você provavelmente já usa o php 7, então instale

apt-get install php-fpm

que instalará a versão php7

rubo77
fonte