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

7

Meu PHP-CGI começou a exibir páginas em branco sem motivo aparente até que eu reiniciei o processo.

Eu quero saber o porquê.

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

Aqui está minha configuração

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

Alguma ideia do que pode ter causado o erro?

Atualizar

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

Mas eu descobri que se eu desabilitei um plugin do Wordpress chamado WP-SuperCache, meu PHP parou de ser redefinido a cada ~ 10 horas. Até agora, meu PHP tem funcionado por 3 dias seguidos. Alguém tem alguma sugestão sobre isso?

    
por Unknown 25.06.2009 / 21:58

6 respostas

1

Supercache gera versões completas de páginas armazenadas em cache, além de fazer algum outro cache interno, é possível que haja algum tipo de problema de tempo em situações de alta carga. Eu verificaria sua pasta de cache para ter certeza de que ela não continha arquivos em branco. Em caso afirmativo, você provavelmente tem um problema de bloqueio de arquivo. Resolver tal problema pode ser complicado e provavelmente exigirá que você abra um ticket de bug, já que é provável que seja um problema com o próprio código.

    
por 20.07.2009 / 05:15
1

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

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

UPD: hoje eu corri para um problema semelhante quando o nginx + php começou a servir páginas em branco. Minha pesquisa mostrou que ele enviou a página em branco qualquer php lançou uma exceção. Pode ser que seja algum tipo de diretiva php.ini para servir em branco em vez de um erro. Eu deveria examinar logs e etc ... wip.

UPD2: Olhe para o seu php.ini há 2 parâmetros nele que você precisa mudar para ver erros de php:

error_reporting = E_ALL & ~E_NOTICE
display_errors = On
    
por 11.07.2009 / 23:50
0

você tentou realmente parar o serviço fcgi e iniciá-lo novamente ao invés de reiniciá-lo. Eu tive coisas estranhas semelhantes acontecer ao reiniciar fcgi

    
por 26.06.2009 / 00:01
0

A cláusula "espontaneamente aconteceu durante a noite" parece interessante ... é possível que seu host tenha começado a adicionar cabeçalhos extra de status a todo o tráfego? Se assim for, você pode estar vendo esse bug:

Joomla! php, FastCGI, página em branco e cabeçalho duplicado 'Status'

    
por 11.07.2009 / 22:26
0

Verifique o status de 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 o (s) para o número de erro mostrado) e garanta que elas não estão configurados para redirecionar de uma forma que pode causar um loop infinito.

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

    
por 12.07.2009 / 21:38
0

Este é um problema comum, a melhor coisa que você pode fazer é reiniciar seu spawn-fcgi todas as noites e assistir seus logs de erro. Um pequeno programa de logwatch do python que irá reiniciar o seu php pode ser encontrado aqui.

link

    
por 20.07.2009 / 22:00