A melhor maneira de solucionar problemas do apache não está iniciando?

8

Recentemente, adquirimos um servidor de backup para espelhar todos os nossos dados, caso o servidor principal fique inoperante.

Atualizei todos os dados do site através do rsync e atualizamos todas as configurações e bancos de dados do apache. Ambas as máquinas estão no Ubuntu 9 (9.04 no primário, 9.10 no backup).

Portanto, tudo parece sincronizado na maior parte do momento (ainda é necessário descobrir a sincronização do usuário) e tento iniciar o Apache. eu recebo

* Starting web server apache2                                       [fail]

Nada mais indicando qual poderia ser o problema.

Sei que não tenho informações suficientes para esperar uma solução de vocês, então gostaria de saber para onde posso ir daqui para investigar mais esse problema. Haveria algum registro de erro para isso?

Obrigado!

Lowgain
fonte
até agora, eu encontrei logs dizendo "Não existe esse arquivo ou diretório: mod_fcgid" - este é um bom começo #
Lowgain

Respostas:

11

Em alguns casos específicos, uma entrada de log não será gravada no disco - isso pode ocorrer se não existirem logs, por exemplo, ou o Apache simplesmente não puder gravar nos arquivos de log devido a problemas de permissão etc. A melhor maneira de diagnosticar um erro é usar o `strace ':

[root@server ~]# strace -Ff apachectl start

Embora a saída seja bastante detalhada, se o Apache falhar ao iniciar por qualquer motivo, você verá um write () no final da página com o conteúdo do que seria inserido nos logs com o motivo da falha (se não estiver registrando). por que no log de erros, não se surpreenda se a mensagem de erro contiver "Não é possível abrir o log" com o caminho para o log;).

Embora analisando seu comentário sobre o mod_fcgid, sugiro revisar a configuração do Apache e examinar as referências ao mod_fcgid - parece que ele está tentando abrir um arquivo "mod_fcgid" literal em vez de carregar o módulo.

slm
fonte
13

httpd -t testará a sintaxe dos seus arquivos de configuração e cuspirá quaisquer erros no terminal.

Ignacio Vazquez-Abrams
fonte
2
Isso foi super útil. +1
Tom Busby
Se isso não funcionar, tente apachectl -t.
precisa saber é o seguinte
3

Quaisquer erros devem ser impressos nos logs de erros (geralmente em / var / log / http / error_logs. Grep for ErrorLog no seu httpd.conf para descobrir onde.

Eu recomendo usar duas janelas. Faça um 'tail -f error_log' em uma janela e use outra janela para executar o comando 'apachectl restart'. Depois de encontrar o erro, atualize sua resposta aqui com a mensagem de erro.

Stefan Lasiewski
fonte
A etapa de solução de problemas número um em qualquer coisa deve sempre ser lida nos logs. O Apache registra quase todos os eventos que passam por ele; portanto, você deve estar repleto de dados para ler.
## phuzion #
2

Eu tive um problema semelhante com o servidor de depuração apache no Mac OS, então decidi compartilhar minha experiência e poupar outras pessoas algum tempo, achei o seguinte muito útil:

  1. localize logs:

apachectl -S | grep log

  1. Na saída, você encontrará alguns arquivos de log que podem começar a procurar o exemplo de erros:

tail -n 15 /var/log/apache2/ssl_engine.log

Caso haja mais de 1 arquivo de log, continue seguindo-os até encontrar o erro que faz com que o apache não seja iniciado

talsibony
fonte
0

Se o seu Apache não estiver em execução, verifique sua porta do skype, na maioria das vezes o skype e o apache usam a porta 80, e isso significa que o skype pode ser a razão pela qual o apache não pode iniciar. pare o skype se estiver instalado.

Biffon Momanyi
fonte