Apache'nin günlük dosyalarını nerede sakladığını nasıl bulabilirim?


11

Apache'nin bir site için erişim ve hata günlüklerini nerede tuttuğunu bulmam gerekiyor .

Düzinelerce sitenin barındırıldığı bir sunucuya root erişimim var. Bu sitelerden birinde hata ayıklamaya çalışıyorum. Ben siteye göz, o üzerinde görünmüyor /var/logs/apache2/access.logveya /var/logs/apache2/error.log. (Dosyalar orada ve diğer siteler bunlara kaydedilir. Aslında, yüzlerce farklı günlük dosyası vardır).

Ne locate httpd.logde find . -iname httpd.loggerçekleştirilir /konuda herhangi bir sonuç.

Site için apache yapılandırması:

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/

6
Bu bir dupe değildir, OP sorunun kendisinde önerilen kopyayla bağlantı kurmuştur ve açık bir şekilde /var/log/apache2/access.logkopyaların öne sürdüğü bilgilerin olmadığını belirtir .
terdon

Denesudo lsof -nP -c apache2 -c httpd | grep -i log
Stéphane Chazelas

Yanıtlar:


5

Onun bilgileri hakkında Apache'nin günlük dosyalarından bilgi alabilirsiniz, ancak bunlar hakkında gerçek yürütülebilir dosyadan sormak genellikle daha iyidir. Günlükleri ayrıştırmak zor olabilir ve belirli bir kurulumun bir kutuda nasıl yapıldığını bilmiyorsanız büyük olasılıkla hata yaparsınız.

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"

Bakmak istediğiniz anahtar öğeler aşağıdaki gibidir.

  1. Bu size Apache'nin başvurulacağı tüm dosyaların başlayacağı "kök" dizinini söyler:

     -D HTTPD_ROOT="/etc/httpd"
    
  2. config dosyaları, buradan başlayarak tanımlanır. Bu yolun # 1'de belirtilen yola göre olduğunu unutmayın, öyle olur /etc/httpd/conf/httpd.conf.

     -D SERVER_CONFIG_FILE="conf/httpd.conf"
    
  3. Hata günlüğü burada.

     -D DEFAULT_ERRORLOG="logs/error_log"
    

    NOT: Bu ilk başta biraz kafa karıştırıcı olabilir ama Red Hat dağıtımlarında genellikle bu dizinde /etc/httpdadı verilen bir bağlantı var logs.

    $ ls -ld /etc/httpd/logs
    lrwxrwxrwx. 1 root root 19 Jul  9  2012 /etc/httpd/logs -> ../../var/log/httpd
    
  4. Apache tarafından kullanılabilecek diğer günlük dosyaları, yapılandırma dosyasında daha ayrıntılı olarak tanımlanacaktır /etc/httpd/conf/httpd.conf.


1
httpd -V komutu Debian 9'da çalışmaz
Christia

Deneyinapache2 -V
Draex_

3

Dizeyi apache yapılandırmanıza bakın ErrorLog.

Genellikle Apache sürecinin kendisi için bir tane vardır. Her VirtualHost kendi günlük dosyalarını da tanımlayabilir, bu yüzden bunları da kontrol edin.

VirtualHost kendi günlük dosyasını tanımlamazsa, global yapılandırmada belirtilen dosyayı kullanır. Doğru günlük dosyasını bulduğunuzu düşünüyorsanız, ancak ihtiyacınız olan bilgileri görmüyorsanız LogLevel.


1
/etc/apache2# rgrep "ErrorLog" .belirten düzinelerce yapılandırma dosyası görüntüler ${APACHE_LOG_DIR}/error.sitename.log, ancak bu bunlardan biri değildir. /etc/apache2# rgrep "LogLevel" .bana sadece birkaç varsayılan dosya verir.
Brezilyalı Adam

2
Debian'da varsayılan ${APACHE_LOG_DIR}olarak tanımlanır /var/log/apache2. Kontrol /etc/defaults/apache2değişti olup olmadığını görmek için.
bahamat

Hiçbir varsa LogLevelbelirli bir VirtualHost için ayarlanmış bir tane ekleyebilir.
bahamat

1

Az önce /etc/apache2/conf.d/other-vhosts-access-logiçeren bir dosya buldum

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

Görünüşe göre, vhost'lardaki tüm günlükleri tek bir dosyada birleştirmenin bir yolu. Kontrol ettim ve erişimler orada kaydediliyordu.

( kaynak )

Bu sitenin yapılandırma dosyasına bir ErrorLog ve bir AccessLog yönergesi eklemek, bana ayrı günlük dosyaları sağladı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.