Por que o apache falha ao iniciar e diz apenas “Configuration Failed” no log de erros?

5

O Apache 2.2.23 falha em iniciar por mim e as únicas entradas no arquivo de log são:

[Fri Feb 22 02:54:24 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Feb 22 02:54:24 2013] [notice] Digest: generating secret for digest authentication ...
[Fri Feb 22 02:54:24 2013] [notice] Digest: done
Configuration Failed
[Fri Feb 22 02:54:57 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Feb 22 02:54:57 2013] [notice] Digest: generating secret for digest authentication ...
[Fri Feb 22 02:54:57 2013] [notice] Digest: done
Configuration Failed

Isso tem me deixado louco. A rede está bem, os discos estão bem, os arquivos de configuração passam verificações de sintaxe, nada foi alterado desde que funcionou anteriormente. Apenas se recusa a iniciar, geralmente após algum pico de carga.

Eu também mencionaria que o mecanismo de reinicialização inclui fazer kill -9 se o desligamento normal não for bem-sucedido.

Não consigo encontrar nada no google ou aqui sobre isso.

    
por Mike Venzke 22.02.2013 / 04:49

3 respostas

11

Eu finalmente encontrei a solução para isso, removendo todas as configurações do site, módulos e diretivas de configuração.

Então, finalmente, o log de erros produziu esta gem:

[Fri Feb 22 03:04:22 2013] [emerg] (28)No space left on device: Couldn't create accept lock (/etc/httpd/logs/accept.lock.10752) (5)
[Fri Feb 22 03:04:24 2013] [warn] pid file /etc/httpd/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run?

Agora isso, havia respostas para no google. Como mencionado aqui e em outros lugares, este erro foi causado por muitos semáforos abertos do apache, pois o disco estava vazio e gravável.

Eu resolvi isso executando:

ipcs -s | grep www-data | awk '{print $2;}' | while read -r line; do ipcrm sem "$line"; done

e adicionando isso ao script de reinicialização. Agora está tudo bem. Eu suponho que há uma correlação entre isso e usar kill -9, mas sem isso eu fico com processos apache pendentes e sem resposta.

    
por 22.02.2013 / 13:00
4

Sugiro que você execute um strace para ver o que está acontecendo:

strace -f -o apache.trace /usr/sbin/httpd

Talvez o disco esteja cheio?

    
por 22.02.2013 / 05:01
2

Verifique as permissões do local em que seus registros estão sendo gravados, incluindo os próprios arquivos. O Apache precisa ser capaz de gravar no log quando ele libera as permissões do root, e você vai ter pouco uso dos logs se o Apache estiver resgatando porque ele não pode mais escrever para eles. É um dos problemas mais simples, mas mais irritantes que você pode encontrar.

Se este não for o caso, a sugestão do @ quanta é provavelmente a melhor maneira de identificar o que estava acontecendo quando o Apache foi socorrido.

    
por 22.02.2013 / 05:20

Tags