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.log
oder 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.log
noch find . -iname httpd.log
in /
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/
debian
logs
apache-httpd
Dieser Brasilianer
quelle
quelle
/var/log/apache2/access.log
des Duplikats entsprechen.sudo lsof -nP -c apache2 -c httpd | grep -i log
Antworten:
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
Die wichtigsten Elemente, die Sie anzeigen möchten, sind folgende.
Dies sagt Ihnen das "root" -Verzeichnis, auf das alle Dateien, auf die Apache verweist, beginnen:
Konfigurationsdateien werden ab hier definiert. Beachten Sie, dass dieser Pfad relativ zu dem in Nr. 1 genannten Pfad ist
/etc/httpd/conf/httpd.conf
.Fehlerprotokoll ist hier.
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/httpd
genanntlogs
.Andere Protokolldateien, die möglicherweise von Apache verwendet werden, werden in der Konfigurationsdatei weiter definiert
/etc/httpd/conf/httpd.conf
.quelle
apache2 -V
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
.quelle
/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.${APACHE_LOG_DIR}
ist/var/log/apache2
standardmäßig definiert . Überprüfen Sie/etc/defaults/apache2
, ob es geändert wurde.LogLevel
für einen bestimmten VirtualHost kein Satz vorhanden ist, können Sie einen hinzufügen.Ich habe gerade eine Datei gefunden,
/etc/apache2/conf.d/other-vhosts-access-log
die enthältEs 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.
quelle