Onde os logs de acesso ao arquivo Apache são armazenados?

180

Alguém sabe onde os logs de acesso ao arquivo estão armazenados, para que eu possa executar um tail -fcomando para ver quem está acessando um arquivo específico.

Eu tenho o XAMPP, que é um servidor Apache instalado na minha máquina, que registra automaticamente os acessos. Está armazenado na minha pasta de instalação.

AkshaiShah
fonte
Em que distribuição ou com qual provedor de hospedagem? Os logs geralmente estão abaixo /var/log, mas alguns sistemas os têm em outro lugar.
Gilles

Respostas:

206

Por fim, isso depende da sua configuração do Apache. Procure CustomLogdiretivas na configuração do Apache, consulte o manual para obter exemplos.

Um local típico para todos os arquivos de log é /var/loge subdiretórios. Tente /var/log/apache/access.logou /var/log/apache2/access.logou /var/log/httpd/access.log. Se os logs não estiverem lá, tente executar locate access.log access_log.

Gilles
fonte
40

Se você não encontrar o log com a resposta de Gilles , há mais algumas coisas que você pode tentar.

  • Olhe dentro /var/log/httpd.
  • Corra sudo locate access.logtão bem quanto sudo locate access_log. Os logs do meu sistema não eram visíveis, exceto para root, e o arquivo foi chamado em access_logvez de access.log.
Don Kirkby
fonte
3
+1 para / var / log / httpd - me levou direito a ele em nossa instalação CentOS
Chuck Wilbur
24

O servidor Apache registra todas as solicitações recebidas e todas as solicitações processadas em um arquivo de log. O formato do log de acesso é altamente configurável. A localização e o conteúdo do log de acesso são controlados pela diretiva CustomLog. Local padrão do arquivo de log de acesso ao apache:

Local do arquivo de acesso do RHEL / Red Hat / CentOS / Fedora Linux Apache -

/var/log/httpd/access_log

Local do arquivo de log de acesso ao Debian / Ubuntu Linux Apache -

/var/log/apache2/access.log

Localização do arquivo de log de acesso do FreeBSD Apache -

 /var/log/httpd-access.log

Para encontrar a localização exata do arquivo de log do apache, você pode usar o comando grep:

# grep CustomLog /usr/local/etc/apache22/httpd.conf
# grep CustomLog /etc/apache2/apache2.conf
# grep CustomLog /etc/httpd/conf/httpd.conf

Saída de amostra:

# a CustomLog directive (see below).
#CustomLog "/var/log/httpd-access.log" common
CustomLog "/var/log/httpd-access.log" combined 
hector adam
fonte
4
A melhor resposta na minha opinião: detalhada, concisa e multiplataforma para a maioria dos * nix.
Sopalajo de Arrierez
Esta resposta inteira foi copiada desta página: cyberciti.biz/faq/apache-logs
Gert Grenander
5

encontre o local do arquivo access.log do Apache no Debian / Ubuntu Linux

Na minha máquina /etc/apache2/apache2.confapontou para ${APACHE_LOG_DIR}a variável de ambiente em vez do próprio diretório de log.

A etapa (adicional) a seguir foi necessária para localizar o diretório de log real:

$ grep APACHE_LOG_DIR /etc/apache2/envvars
export APACHE_LOG_DIR=/var/log/apache2$SUFFIX
$

envvars contém variáveis ​​de ambiente padrão para o Apache.

Portanto, para visualizar o log de acesso, use

$ sudo tail -f /var/log/apache2/access.log
Dmytro Dzyubak
fonte