PHP-CGI começou a servir páginas em branco


8

Meu PHP-CGI começou a servir páginas em branco sem motivo aparente até reiniciar o processo.

Eu quero saber o porquê.

Infelizmente, o arquivo de configuração "produção" do PHP não possui error_log por padrão. Meu log de erros do Nginx também não exibiu erros relacionados ao PHP. Este é provavelmente um caso sem esperança, mas estou perguntando apenas por precaução.

Aqui está a minha configuração

  • Nginx 0.8.2
  • PHP 5.2.6-3ubuntu4.1 com Suhosin-Patch 0.9.6.2 (cli) (compilado em 23 de abril de 2009 14:37:14)
  • PHP APC 3.0.19-2
  • spawn-fcgi v1.6.2 (ipv6) - wrapper fastcgi da lighttpd

Alguma idéia do que pode ter causado o erro?

Atualizar

Eu acho que isolei o problema. Eu tenho usado o Monit para reiniciar o PHP automaticamente sempre que ele começou a apagar. Meus logs de erros do PHP estão em branco.

Mas eu descobri que se eu desativasse um plug-in do Wordpress chamado WP-SuperCache, meu PHP deixaria de ser redefinido a cada ~ 10 horas. Até agora, meu PHP está em execução há 3 dias seguidos. Alguém tem alguma sugestão sobre isso?

Respostas:


2

O Supercache gera versões em cache completas das páginas, além de fazer outros caches internos, é possível que haja algum tipo de problema de tempo em situações de alta carga. Eu verificaria sua pasta de cache para garantir que ela não contenha arquivos em branco. Nesse caso, você provavelmente tem um problema de bloqueio de arquivo. Resolver esse problema pode ser complicado e provavelmente exigirá que você abra um ticket de bug, pois provavelmente é um problema com o próprio código.


1

você tentou realmente parar o serviço fcgi e iniciá-lo novamente em vez de reiniciá-lo. eu tive coisas estranhas semelhantes acontecer ao reiniciar o fcgi


11
O problema não veio da reinicialização. Isso aconteceu espontaneamente da noite para o dia quando recebi um monte de visitantes de um dump de links chamado Reddit.
314 Unknown

1

Verifique o status da resposta de suas solicitações se isso acontecer novamente (por exemplo, curl -i) e se o status não for 200, verifique suas páginas de erro (especificamente as) para o número de erro mostrado) e verifique se não estão. defina para redirecionar de uma maneira que possa causar um loop infinito.

Se o status da resposta for 200, verifique se há algum texto na resposta além dos cabeçalhos HTTP.


Suponho que deveria ter feito isso, mas já reiniciei o PHP para que as pessoas pudessem visualizar a página. Não vi nenhum erro no log do servidor.
Desconhecido


1

Não é uma resposta, mas sugestão - substitua spawn-fcgi por php-fpm , é mais personalizável.

PS. talvez você tenha uma página de erro 50x especial redirecionada no nginx.conf

UPD: hoje encontrei um problema semelhante quando o nginx + php começou a servir páginas em branco. Minha pesquisa mostrou que ele enviava uma página em branco, independentemente do php que causasse uma exceção. Pode ser que seja algum tipo de diretiva php.ini servir em branco em vez de um erro. Eu deveria examinar logs e etc ... limpe.

UPD2: Olhe para o seu php.ini, existem 2 parâmetros nele que você precisa alterar para ver os erros de php:

error_reporting = E_ALL & ~E_NOTICE
display_errors = On

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.