Wie finde ich heraus, wo Apache die Protokolldateien aufbewahrt?

10

Ich muss herausfinden, wo Apache die Zugriffs- und Fehlerprotokolle für eine Site aufbewahrt.

Ich habe Root-Zugriff auf einen Server, auf dem Dutzende von Websites gehostet werden. Ich versuche, eine dieser Websites zu debuggen. Wenn ich die Site durchsuche, wird sie nicht auf /var/logs/apache2/access.logoder angezeigt /var/logs/apache2/error.log. (Die Dateien sind dort und andere Sites werden auf diesen protokolliert. Tatsächlich gibt es Hunderte verschiedener Protokolldateien.)

Weder locate httpd.lognoch find . -iname httpd.login /Frage gestellt irgendwelche Ergebnisse.

Die Apache-Konfiguration für die Site lautet:

ServerName REDACTED.com.br
DocumentRoot /var/www/xyz/wiki
AssignUserId xyz_wiki xyz_wiki

<Directory /var/www/xyz/wiki/data>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/conf>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/bin>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/inc>
order allow,deny
deny from all
</Directory>

php_admin_value open_basedir /var/www/xyz/wiki/:/mnt/vdImagem/www/xyz/wiki/
Dieser Brasilianer
quelle
6
Dies ist kein Betrug, das OP hat in der Frage selbst auf das vorgeschlagene Duplikat verwiesen und stellt eindeutig fest, dass die Informationen nicht den Angaben /var/log/apache2/access.logdes Duplikats entsprechen.
Terdon
Versuchen Siesudo lsof -nP -c apache2 -c httpd | grep -i log
Stéphane Chazelas

Antworten:

4

Sie können seine Informationen aus den Apache-Protokolldateien abfragen, aber es ist im Allgemeinen besser, sich über diese Dinge in der eigentlichen ausführbaren Datei zu erkundigen. Das Parsen der Protokolle kann schwierig sein und Sie werden wahrscheinlich einen Fehler machen, wenn Sie nicht so vertraut sind, wie ein bestimmtes Setup für eine Box durchgeführt wurde.

httpd -V

$ 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"

Die wichtigsten Elemente, die Sie anzeigen möchten, sind folgende.

  1. Dies sagt Ihnen das "root" -Verzeichnis, auf das alle Dateien, auf die Apache verweist, beginnen:

     -D HTTPD_ROOT="/etc/httpd"
    
  2. Konfigurationsdateien werden ab hier definiert. Beachten Sie, dass dieser Pfad relativ zu dem in Nr. 1 genannten Pfad ist /etc/httpd/conf/httpd.conf.

     -D SERVER_CONFIG_FILE="conf/httpd.conf"
    
  3. Fehlerprotokoll ist hier.

     -D DEFAULT_ERRORLOG="logs/error_log"
    

    Hinweis: Dieses könnte sein , ein wenig verwirrend auf den ersten , sondern auf Red Hat - Distributionen gibt es einen Link , die oft in diesem Verzeichnis vorgenommen wird, /etc/httpdgenannt logs.

    $ ls -ld /etc/httpd/logs
    lrwxrwxrwx. 1 root root 19 Jul  9  2012 /etc/httpd/logs -> ../../var/log/httpd
    
  4. Andere Protokolldateien, die möglicherweise von Apache verwendet werden, werden in der Konfigurationsdatei weiter definiert /etc/httpd/conf/httpd.conf.

slm
quelle
1
httpd -V Befehl funktioniert nicht auf Debian 9.
Christia
Versuchen Sieapache2 -V
Draex_
3

Suchen Sie in Ihrer Apache-Konfiguration nach der Zeichenfolge ErrorLog.

Normalerweise gibt es eine für den Apache-Prozess. Jeder VirtualHost kann auch seine eigenen Protokolldateien definieren. Überprüfen Sie diese ebenfalls.

Wenn der VirtualHost keine eigene Protokolldatei definiert, verwendet er die in der globalen Konfiguration angegebene. Wenn Sie der Meinung sind, dass Sie die richtige Protokolldatei gefunden haben, aber nicht die benötigten Informationen sehen, erhöhen Sie die LogLevel.

Bahamat
quelle
1
/etc/apache2# rgrep "ErrorLog" .Zeigt Dutzende von Konfigurationsdateien an, die angeben ${APACHE_LOG_DIR}/error.sitename.log, aber dies ist keine davon. /etc/apache2# rgrep "LogLevel" .bekomme mir nur ein paar standarddateien.
Dieser Brasilianer
2
On Debian ${APACHE_LOG_DIR}ist /var/log/apache2standardmäßig definiert . Überprüfen Sie /etc/defaults/apache2, ob es geändert wurde.
Bahamat
Wenn LogLevelfür einen bestimmten VirtualHost kein Satz vorhanden ist, können Sie einen hinzufügen.
Bahamat
1

Ich habe gerade eine Datei gefunden, /etc/apache2/conf.d/other-vhosts-access-logdie enthält

# Define an access log for VirtualHosts that don't define their own logfile
CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined

Es sieht so aus, als ob es eine Möglichkeit ist, alle Protokolle von vhosts in einer einzigen Datei zu kombinieren. Ich habe überprüft und die Zugriffe wurden dort aufgezeichnet.

( Quelle )

Durch das Einfügen eines ErrorLog- und einer AccessLog-Direktive in die Konfigurationsdatei für diese Site wurden separate Protokolldateien bereitgestellt.

Dieser Brasilianer
quelle