Gdzie są przechowywane dzienniki dostępu do plików Apache?

180

Czy ktoś wie, gdzie są przechowywane dzienniki dostępu do plików, więc mogę uruchomić tail -fpolecenie, aby zobaczyć, kto ma dostęp do określonego pliku.

Mam XAMPP, czyli serwer Apache zainstalowany na moim komputerze, który automatycznie rejestruje dostęp. Jest on przechowywany w moim folderze instalacyjnym.

AkshaiShah
źródło
Na jakiej dystrybucji lub u jakiego dostawcy hostingu? Dzienniki są zwykle poniżej /var/log, ale niektóre systemy mają je gdzie indziej.
Gilles

Odpowiedzi:

206

Ostatecznie zależy to od konfiguracji Apache. Poszukaj CustomLogdyrektyw w konfiguracji Apache, przykłady znajdziesz w instrukcji obsługi .

Typowa lokalizacja wszystkich plików dziennika to /var/logpodkatalogi. Spróbuj /var/log/apache/access.loglub /var/log/apache2/access.loglub /var/log/httpd/access.log. Jeśli dzienników nie ma, spróbuj uruchomić locate access.log access_log.

Gilles
źródło
40

Jeśli nie możesz znaleźć dziennika z odpowiedzią Gillesa , możesz spróbować jeszcze kilku rzeczy.

  • Zajrzyj do środka /var/log/httpd.
  • Uruchom sudo locate access.logtak samo jak sudo locate access_log. Dzienniki w moim systemie były widoczne tylko do rootowania, a plik został wywołany access_logzamiast access.log.
Don Kirkby
źródło
3
+1 za / var / log / httpd - zaprowadziło mnie bezpośrednio do naszej instalacji CentOS
Chuck Wilbur
24

Serwer Apache rejestruje wszystkie przychodzące żądania i wszystkie żądania przetworzone do pliku dziennika. Format dziennika dostępu jest wysoce konfigurowalny. Lokalizacja i zawartość dziennika dostępu są kontrolowane przez dyrektywę CustomLog. Domyślna lokalizacja pliku dziennika dostępu do apache:

RHEL / Red Hat / CentOS / Fedora Linux Apache lokalizacja pliku dostępu -

/var/log/httpd/access_log

Lokalizacja pliku dziennika dostępu do Debiana / Ubuntu Linux Apache -

/var/log/apache2/access.log

Lokalizacja pliku dziennika dostępu Apache FreeBSD -

 /var/log/httpd-access.log

Aby znaleźć dokładną lokalizację pliku dziennika apache, możesz użyć polecenia grep:

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

Przykładowe dane wyjściowe:

# a CustomLog directive (see below).
#CustomLog "/var/log/httpd-access.log" common
CustomLog "/var/log/httpd-access.log" combined 
hektor Adam
źródło
4
Moim zdaniem najlepsza odpowiedź: szczegółowa, zwięzła i wieloplatformowa dla większości * nix.
Sopalajo de Arrierez
Cała odpowiedź została skopiowana z tej strony: cyberciti.biz/faq/apache-logs
Gert Grenander
5

znajdź lokalizację pliku access.log w Apache w systemie Debian / Ubuntu Linux

Na moim komputerze /etc/apache2/apache2.confwskazałem ${APACHE_LOG_DIR}zmienną środowiskową zamiast samego katalogu dziennika.

Aby znaleźć rzeczywisty katalog dziennika, konieczny był następujący (dodatkowy) krok:

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

envvars zawiera domyślne zmienne środowiskowe dla Apache.

Aby wyświetlić dziennik dostępu, użyj

$ sudo tail -f /var/log/apache2/access.log
Dmytro Dziubak
źródło