Depurando o Apache no Debian, onde estão os logs de erro?

6

Estou usando um servidor Debian que já possui o Apache, mod_wsgi e um monte de hosts virtuais sendo executados com sucesso nele.

Eu instalei meu aplicativo do fórum (OSQA do Django) e seguindo as instruções do OSQA ServerName como o novo subdomínio. Eu também criei um arquivo .wsgi para o aplicativo e apontei WSGIScriptAlias para ele. Eu reiniciei o Apache.

No entanto, quando vou para o novo subdomínio, recebo uma mensagem de erro 404.

Estou perdendo um passo acima? Ou é simplesmente criar um novo arquivo de configuração do Apache em sites-available o suficiente para informar ao Apache sobre um novo subdomínio?

Se houver algo mais errado, como posso depurá-lo? Os ErrorLog e CustomLog especificados no arquivo de configuração estão em branco. apache2.conf , que eu acho que é a configuração do Apache, especifica ErrorLog /var/log/apache2/error.log , mas este é mais um arquivo em branco.

    
por AP257 09.08.2010 / 17:32

2 respostas

7

Existem muitos recursos online para o Apache. Você tentou pesquisar no Google para encontrar as respostas?

Quando pesquisei no Google há alguns meses, encontrei as seguintes informações:

ErrorLog     /var/log/apache2/error.log
AccessLog    /var/log/apache2/access.log

start/stop   /etc/init.d/apache2 (start|stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean) 
    
por 10.08.2010 / 18:32
5

O primeiro post não está correto para todos os casos no Debian. Depende de como você instalou o pacote, seja via apt ou compilando a partir do código fonte.

Para descobrir onde estão os logs, de acordo com a forma como o Apache diz que foi instruído a gerar logs, você deverá executar o seguinte comando:

/usr/sbin/apachectl -V

algumas distribuições do linux criam um link simbólico chamado / usr / sbin / apacheVERctl, onde VER é 2 ou 1.3 ou qualquer outra coisa. O Debian coloca o arquivo em / usr / sbin / então tente o comando acima e você verá algo como:

/usr/sbin/apachectl -V
Server version: Apache/2.2.3

<removed for brevity>

 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log" <<=== default log files stored in "logs/" which is relative to /usr/local/apache<VER>/logs on this server==>
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Como você pode ver, meus logs estão em / usr / local / apache2 / error_log. Dependendo de como o servidor foi compilado, o sinalizador --prefix pode ter sido apontado para outro local. Sua melhor aposta é executar esse comando e procurar o error_log usando find.

find / -iname name_of_error_log_file_that_apachectl_spit_out

Você pode ter que fazer um     encontrar / -iname apachectl ou várias permutações do mesmo para descobrir onde está o binário. Às vezes é chamado / usr / sbin / httpd. Apenas certifique-se de conhecer o comando find e você vai descobrir.

A pesquisa do Google nem sempre lhe dará as respostas certas, por isso é fundamental ler a documentação dos seus serviços.

Além disso, depois de revisar o documento, se você percorreu todo o documento, você já configurou o registro em log do caminho / nimda para que os registros do nimda sejam aqui:

    <cut above config lines>

        CustomLog /var/log/httpd/OSQA/access_log common
        ErrorLog /var/log/httpd/OSQA/error_log
    </VirtualHost>

E para SSL, os registros parecem estar indo para o mesmo lugar:

(opcional) execute a interface administrativa em https              ServerAdmin [email protected]         DocumentRoot / path / to / osqa-site         Nome do servidor example.com         SSLEngine on         SSLCertificateFile /path/to/ssl-certificate/server.crt         SSLCertificateKeyFile /path/to/ssl-certificate/server.key         WSGIScriptAlias / /path/to/osqa-site/osqa.wsgi         CustomLog / var / log / httpd / OSQA / access_log comum         ErrorLog / var / log / httpd / OSQA / error_log         DirectoryIndex index.html     

Por favor, verifique

/usr/local/apache<VER>/logs 

no servidor talvez até

/usr/local/httpd/*, /var/log/httpd or /var/log/apache<ver>. 

Diferentes distribuições do Linux têm lugares diferentes em que armazenam registros.

Os logs nem sempre estão em / var / log / apache / * ou / var / log / httpd

Às vezes eles estão em / var / log / httpd /, algumas vezes as pessoas compilam o Apache a partir do código-fonte e a variável do apache DEFAULT_ERRORLOG é configurada de forma diferente, assim o log de erros está em um lugar enquanto o access_log está em outro. Às vezes, os arquivos também têm nomes diferentes. Às vezes, as pessoas configuram vhosts diferentes para armazenar logs em lugares diferentes porque têm vários domínios e não desejam que todos os outros clientes na caixa vejam os logs de outros domínios, pois isso pode expor informações críticas. O primeiro post não vai funcionar em todos os casos.

O Google não pode responder a todas as perguntas e dizer a alguém "google it" em tantas palavras nem sempre é a melhor resposta.

Uma pessoa pode usar o Redhat, que coloca os logs em um local diferente quando instalado a partir de um RPM distribuído pelo Redhat.

    
por 06.04.2012 / 01:20