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.


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.


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.

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 

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.