php como shutdowns fast_cgi sem log

1

Estou executando o php5 atrás de um proxy nginx, como Fast_CGI, depois de algum uso (Sempre enquanto estiver sendo usado, não enquanto ocioso. O servidor Fast_CGI simplesmente é desligado (não é mais exibido em um 'ps -A'.

No php.ini Log_Errors está definido como On e Error_Log está definido como /var/log/php.log, no entanto, se visualizar php.log apenas os erros de inicialização são exibidos, nada que possa significar o fechamento do php.

    
por Arelius 08.06.2009 / 00:09

1 resposta

1

A melhor maneira de descobrir qual é o problema quando você não obtém nenhuma saída é executar o php under strace. Inicie o php e obtenha a lista de pids do ps. Então corra:

# strace -f -o /tmp/php.strace.log -p pid1 -p pid2 -p pid3 ....

Uma vez que o PHP morre, procure no log para ver o que acontece.

Tendo dito isso, no seu caso particular, eu suspeito que você tenha suas variáveis de ambiente erradas. Se você tem um único processo de php, isso concordaria com o meu palpite. O PHP tem uma opção para terminar após um certo número de solicitações. Isso é uma coisa sensata a ser feita para evitar vazamentos de memória e outros problemas desse tipo. Há também uma opção para especificar o número de processos que estão sendo executados ao mesmo tempo. Se houver apenas um processo, após vários pedidos, ele morrerá. A solução é executar mais de um processo. As opções que eu uso são:

export PHP_FCGI_CHILDREN=4
export PHP_FCGI_MAX_REQUESTS=1000

Se você colocar essas linhas no script que você usa para iniciar o seu servidor php, você deve encontrar o seu site PHP continua em execução. :)

    
por 08.06.2009 / 00:21

Tags