Como reiniciar o php-cgi automaticamente com o spawn-fcgi

1

Estou executando o nginx com php como fcgi. Está funcionando muito bem, no entanto, o php-cgi continua a sair () depois de atender a 500 solicitações. Eu tentei aumentar esse valor (PHP_FCGI_MAX_REQUESTS), e isso funcionou, mas isso parece ser uma solução alternativa. Então eu configurei para 0 e ele não saiu () ainda. Mas acho que há uma razão pela qual o php-cgi deve ser reiniciado. No momento, estou executando o php-cgi com o spawn-fcgi: quando o processo do php termina, o spawn-fcgi também sai. Agora, existe uma maneira de reiniciar automaticamente o php (sem hacks sujos como while [ 1 ]; do spawn-fcgi; done etc)?

    
por mrm8 30.05.2011 / 22:55

2 respostas

2

Existe algum motivo para você não poder mudar para o PHP-FPM? Ele vem com PHP > = 5.3, e há um patch para ativá-lo para 5.2. Eu tenho usado por cerca de um ano, e tem sido perfeitamente estável sem problemas. Isso faria com que seu problema de geração de processos desaparecesse, já que o PHP-FPM manipularia de forma transparente os processos antigos e reiniciaria novos para você.

A razão para PHP_FCGI_MAX_REQUESTS é que o PHP irá parar aleatoriamente de responder a pedidos após um certo número deles. Parece que esse bug pode ter sido parcialmente corrigido em versões mais novas, mas durante meu teste do 5.2.x eu notei que aconteceu várias vezes.

    
por 31.05.2011 / 04:23
0

O multiwatch foi projetado para isso (para reiniciar processos secundários que estão sendo executados pelo spawn-fcgi) - veja link

    
por 12.08.2012 / 15:28