Wo werden Apache-Dateizugriffsprotokolle gespeichert?

180

Weiß jemand, wo Dateizugriffsprotokolle gespeichert sind, damit ich einen tail -fBefehl ausführen kann, um zu sehen, wer auf eine bestimmte Datei zugreift.

Ich habe XAMPP, einen auf meinem Computer installierten Apache-Server, der die Zugriffe automatisch protokolliert. Es ist in meinem Installationsordner gespeichert.

AkshaiShah
quelle
Auf welcher Distribution oder bei welchem ​​Hosting-Provider? Protokolle befinden sich normalerweise unter /var/log, aber einige Systeme haben sie an anderer Stelle.
Gilles

Antworten:

206

Letztendlich hängt dies von Ihrer Apache-Konfiguration ab. Suchen Sie CustomLogin Ihrer Apache-Konfiguration nach Anweisungen . Beispiele finden Sie im Handbuch .

Ein typischer Speicherort für alle Protokolldateien ist /var/logund Unterverzeichnisse. Versuchen Sie /var/log/apache/access.logoder /var/log/apache2/access.logoder /var/log/httpd/access.log. Wenn die Protokolle nicht vorhanden sind, versuchen Sie, sie auszuführen locate access.log access_log.

Gilles
quelle
40

Wenn Sie das Protokoll mit Gilles 'Antwort nicht finden können , können Sie noch ein paar Dinge versuchen.

  • Schau rein /var/log/httpd.
  • Laufen Sie sudo locate access.logso gut wie sudo locate access_log. Die Protokolle auf meinem System waren nur für root sichtbar, und die Datei wurde access_logstattdessen aufgerufen access.log.
Don Kirkby
quelle
3
+1 für / var / log / httpd - führte mich direkt zu unserer CentOS-Installation
Chuck Wilbur
24

Der Apache-Server zeichnet alle eingehenden Anforderungen und alle verarbeiteten Anforderungen in einer Protokolldatei auf. Das Format des Zugriffsprotokolls ist in hohem Maße konfigurierbar. Der Speicherort und der Inhalt des Zugriffsprotokolls werden von der CustomLog-Direktive gesteuert. Standardspeicherort für Apache-Zugriffsprotokolldateien:

RHEL- / Red Hat- / CentOS- / Fedora Linux Apache-Zugriffsspeicherort -

/var/log/httpd/access_log

Speicherort der Debian / Ubuntu Linux Apache-Zugriffsprotokolldatei -

/var/log/apache2/access.log

Speicherort der FreeBSD Apache-Zugriffsprotokolldatei -

 /var/log/httpd-access.log

Um den genauen Speicherort der Apache-Protokolldatei zu ermitteln, können Sie den Befehl grep verwenden:

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

Beispielausgabe:

# a CustomLog directive (see below).
#CustomLog "/var/log/httpd-access.log" common
CustomLog "/var/log/httpd-access.log" combined 
Hector Adam
quelle
4
Die beste Antwort meiner Meinung nach: Detailliert, prägnant und plattformübergreifend für die meisten * nix.
Sopalajo de Arrierez
Diese ganze Antwort wurde von dieser Seite kopiert: cyberciti.biz/faq/apache-logs
Gert Grenander
5

Suchen Sie den Speicherort der Datei Apache access.log unter Debian / Ubuntu Linux

Auf meinem Computer wurde anstelle des Protokollverzeichnisses /etc/apache2/apache2.confauf die ${APACHE_LOG_DIR}Umgebungsvariable verwiesen .

Der folgende (zusätzliche) Schritt ist erforderlich, um das tatsächliche Protokollverzeichnis zu finden:

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

envvars enthält Standardumgebungsvariablen für Apache.

Verwenden Sie daher zum Anzeigen des Zugriffsprotokolls

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