Muszę dowiedzieć się, gdzie Apache przechowuje dzienniki dostępu i błędów dla witryny.
Mam dostęp root do serwera, na którym hostowane są dziesiątki witryn. Próbuję debugować jedną z tych witryn. Gdy przeglądam stronę, nie wyświetla się ona w /var/logs/apache2/access.log
lub /var/logs/apache2/error.log
. (Pliki są tam i inne strony są na nich logowane. W rzeczywistości istnieją setki różnych plików dziennika).
Ani locate httpd.log
nie find . -iname httpd.log
wykonywano /
żadnych wyników.
Konfiguracja apache dla witryny to:
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
Ten brazylijski facet
źródło
źródło
/var/log/apache2/access.log
których sugeruje duplikat.sudo lsof -nP -c apache2 -c httpd | grep -i log
Odpowiedzi:
Możesz zapytać o jego informacje z plików dziennika Apache, ale ogólnie lepiej jest zapytać o te rzeczy z rzeczywistego pliku wykonywalnego. Analiza dzienników może być trudna i prawdopodobnie popełnisz błąd, jeśli nie znasz się na tym, jak przeprowadzono konkretną konfigurację na pudełku.
httpd -V
Najważniejsze elementy, na które chcesz spojrzeć, są następujące.
Informuje to katalog „główny”, że wszystkie pliki, do których odwołuje się Apache, zaczynają się od:
Pliki konfiguracyjne są zdefiniowane, zaczynając od tutaj. Zauważ, że ta ścieżka jest względna do ścieżki wymienionej w punkcie 1, więc tak by było
/etc/httpd/conf/httpd.conf
.Dziennik błędów jest tutaj.
UWAGA: Ten może być nieco mylące, ale w pierwszym dniu dystrybucji Red Hat istnieje związek, który jest często wykonana w tym katalogu,
/etc/httpd
nazywalogs
.Inne pliki dziennika, które mogą być wykorzystywane przez Apache będzie dalej zdefiniowane w pliku konfiguracyjnym
/etc/httpd/conf/httpd.conf
.źródło
apache2 -V
Poszukaj ciągu w konfiguracji Apache
ErrorLog
.Zwykle jest jeden dla samego procesu Apache. Każdy VirtualHost może również definiować własne pliki dziennika, więc również je sprawdź.
Jeśli VirtualHost nie zdefiniuje własnego pliku dziennika, użyje tego określonego w konfiguracji globalnej. Jeśli uważasz, że znalazłeś właściwy plik dziennika, ale nie widzisz potrzebnych informacji, spróbuj zwiększyć
LogLevel
.źródło
/etc/apache2# rgrep "ErrorLog" .
wyświetla dziesiątki określonych plików konfiguracyjnych${APACHE_LOG_DIR}/error.sitename.log
, ale nie jest to jeden z nich./etc/apache2# rgrep "LogLevel" .
dostaje mi tylko kilka domyślnych plików.${APACHE_LOG_DIR}
jest/var/log/apache2
domyślnie zdefiniowany . Sprawdź,/etc/defaults/apache2
czy został zmieniony.LogLevel
zestawu dla konkretnego VirtualHost, możesz go dodać.Właśnie znalazłem plik,
/etc/apache2/conf.d/other-vhosts-access-log
który zawieraWygląda na to, że jest to sposób na połączenie wszystkich dzienników z hostów vhost w jednym pliku. Sprawdziłem i rejestrowano tam dostęp.
( źródło )
Wstawienie ErrorLog i dyrektywy AccessLog w pliku konfiguracyjnym dla tej witryny zapewniło mi osobne pliki dziennika.
źródło