O Apache falha ao recarregar ... Existe um registro no qual eu possa procurar detalhes?


12

Eu tenho um servidor da web no qual estou trabalhando para adicionar um site.

Depois de correr a2ensite, corri service apache2 reloade consegui o seguinte:

[FAIL] Recarregando a configuração do servidor web: apache2 falhou!

Existe um arquivo de log em que eu possa procurar mais detalhes?

Respostas:


9

Você pode ver onde httpdestá configurado para procurar seus arquivos de configuração usando o -Vswitch:

$ httpd -V
Server version: Apache/2.2.15 (Unix)
Server built:   Feb 13 2012 22:31:42
Server's Module Magic Number: 20051115:24
Server loaded:  APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -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"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Você também pode usar o comando lsofpara ver quais arquivos um processo Unix está acessando. Minha versão httpdestá usando a porta de estoque 80, então mude de 80 para 8443 no seu caso!

$ netstat -tapn|grep ::80
tcp        0      0 :::80                       :::*                        LISTEN      5338/httpd     

Agora você pode executar lsofpara descobrir para onde os arquivos de log estão sendo gravados:

$ lsof -p 5338|grep log
httpd   5338 root  mem    REG  253,0    10440   3141 /usr/lib64/httpd/modules/mod_logio.so
httpd   5338 root  mem    REG  253,0    27200   3139 /usr/lib64/httpd/modules/mod_log_config.so
httpd   5338 root    2w   REG  253,0     2014 395029 /var/log/httpd/error_log
httpd   5338 root    7w   REG  253,0     4140 394789 /var/log/httpd/access_log

Você deve poder determinar a localização dos access_logarquivos de configuração e também procurá-los para determinar as diretivas "Diretório" e "Local". Eles especificam quais diretórios locais usar ao informar ao Apache quais arquivos servir.

O que agora?

Eu examinaria o arquivo access_logpara ter certeza de que há entradas correspondentes a acessos no servidor. O que quero dizer com isso é que, se eu procurar no servidor, http://www.somedom.com/somefileeu devo ver esse acesso gravado no access_logarquivo assim:

192.168.1.110 - - [17/Jul/2013:14:39:50 -0400] "GET /somefile HTTP/1.1" 200 4303 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/5
37.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"

Onde estão os arquivos?

Você pode pegar o conhecimento acima que adquirimos e começar a aplicá-lo da seguinte forma:

Estes bits de httpd -Vnos dizem a raiz do Apache:

-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

Então, nós sabemos o arquivo de configuração principal é aqui: /etc/httpd/conf/httpd.conf. Então, procure nesse arquivo essas linhas:

$ grep -E "DocumentRoot|Directory \"|^Include" /etc/httpd/conf/httpd.conf |grep -v "^#"
Include conf.d/*.conf
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
<Directory "/var/www/icons">
<Directory "/var/www/cgi-bin">
    <Directory "/var/www/error">

Então agora eu sei que esses diretórios são fontes potenciais para o arquivo que vimos no access_log. O DocumentRoote Directorieseu procuraria pelo arquivo somefile. Se não estiver em nenhum desses locais, eu me concentrarei no Includediretório mencionado acima na grepsaída /etc/httpd/conf.d/*.conf,.

Esses arquivos são configurações adicionais que o Apache usa, portanto, você precisa repetir as etapas usando o greppara examinar esses arquivos também.


14

Se você não conseguir encontrar o arquivo de log ou o arquivo de log estiver vazio, execute o teste de configuração do apache que imprimirá quaisquer problemas com os arquivos de configuração:

apachectl configtest

2

Corra service apache2 restart. Ele exibirá qualquer mensagem de erro (geralmente o serviço executa um teste de configuração antes de parar e iniciar o apache)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.