Bagaimana cara menemukan tempat Apache menyimpan file log?

10

Saya perlu menemukan di mana Apache menyimpan akses dan kesalahan log untuk situs.

Saya memiliki akses root ke server tempat puluhan situs di-host. Saya mencoba men-debug salah satu situs tersebut. Ketika saya menjelajahi situs, itu tidak muncul di /var/logs/apache2/access.logatau /var/logs/apache2/error.log. (File - file itu ada di sana , dan situs-situs lain akan mencatatnya. Bahkan, ada ratusan file log yang berbeda).

Tidak locate httpd.logjuga tidak find . -iname httpd.logdilakukan dalam /masalah hasil apa pun.

Konfigurasi apache untuk situs ini adalah:

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/
Orang Brasil itu
sumber
6
Ini bukan dupe, OP telah menautkan ke duplikat yang diusulkan dalam pertanyaan itu sendiri dan dengan jelas menyatakan bahwa info tersebut bukan di /var/log/apache2/access.logmana duplikat menyarankan.
terdon
Cobasudo lsof -nP -c apache2 -c httpd | grep -i log
Stéphane Chazelas

Jawaban:

4

Anda dapat menanyakan tentang informasinya dari file log Apache tetapi umumnya lebih baik untuk menanyakan tentang hal-hal ini dari executable yang sebenarnya. Mem-parsing log bisa jadi rumit dan Anda mungkin akan membuat kesalahan jika Anda tidak terbiasa dengan cara pengaturan tertentu dilakukan pada sebuah kotak.

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"

Item utama yang ingin Anda lihat adalah sebagai berikut.

  1. Ini memberi tahu Anda direktori "root" di mana semua file yang akan dirujuk oleh Apache dimulai dari:

     -D HTTPD_ROOT="/etc/httpd"
    
  2. file konfigurasi ditentukan, mulai dari sini. Perhatikan bahwa jalur ini relatif terhadap jalur yang disebutkan dalam # 1, jadi itu akan menjadi /etc/httpd/conf/httpd.conf.

     -D SERVER_CONFIG_FILE="conf/httpd.conf"
    
  3. Log kesalahan ada di sini.

     -D DEFAULT_ERRORLOG="logs/error_log"
    

    CATATAN: Yang ini mungkin agak membingungkan pada awalnya tetapi pada distro Red Hat ada tautan yang sering dibuat dalam direktori ini, yang /etc/httpddisebut logs.

    $ ls -ld /etc/httpd/logs
    lrwxrwxrwx. 1 root root 19 Jul  9  2012 /etc/httpd/logs -> ../../var/log/httpd
    
  4. File log lain yang mungkin digunakan oleh Apache akan didefinisikan lebih lanjut dalam file konfigurasi /etc/httpd/conf/httpd.conf,.

slm
sumber
1
Perintah httpd -V tidak berfungsi pada Debian 9.
Christia
Cobaapache2 -V
Draex_
3

Lihat di konfigurasi apache Anda untuk string ErrorLog.

Biasanya ada satu untuk proses Apache itu sendiri. Setiap VirtualHost juga dapat menentukan file log sendiri jadi periksa juga.

Jika VirtualHost tidak mendefinisikan file lognya sendiri maka itu akan menggunakan yang ditentukan dalam konfigurasi global. Jika Anda merasa telah menemukan file log yang benar tetapi Anda tidak melihat informasi yang Anda butuhkan, maka coba tambah LogLevel.

bahamat
sumber
1
/etc/apache2# rgrep "ErrorLog" .menampilkan lusinan file konfigurasi yang menentukan ${APACHE_LOG_DIR}/error.sitename.log, tetapi ini bukan salah satunya. /etc/apache2# rgrep "LogLevel" .hanya memberi saya beberapa file default.
Orang Brazil itu
2
Pada Debian ${APACHE_LOG_DIR}didefinisikan sebagai /var/log/apache2default. Periksa /etc/defaults/apache2untuk melihat apakah sudah diubah.
bahamat
Jika tidak ada LogLevelset untuk VirtualHost tertentu Anda dapat menambahkannya.
bahamat
1

Saya baru saja menemukan file /etc/apache2/conf.d/other-vhosts-access-logyang berisi

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

Sepertinya itu adalah cara untuk menggabungkan semua log dari vhosts dalam satu file. Saya telah memeriksa dan akses direkam di sana.

( sumber )

Memasukkan ErrorLog dan arahan AccessLog pada file konfigurasi untuk situs itu memberi saya file log yang terpisah.

Orang Brasil itu
sumber