Come trovo dove Apache conserva i file di registro?


10

Devo trovare la posizione in cui Apache mantiene l'accesso e i log degli errori per un sito.

Ho accesso root a un server in cui sono ospitati dozzine di siti. Sto cercando di eseguire il debug di uno di quei siti. Quando sfoglio il sito, non viene visualizzato su /var/logs/apache2/access.logo /var/logs/apache2/error.log. (I file sono lì e altri siti vengono registrati su quelli. In realtà, ci sono centinaia di file di registro diversi).

locate httpd.logfind . -iname httpd.logesibito in /questione alcun risultato.

La configurazione di apache per il sito è:

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
Questo non è un duplicato, l'OP si è collegato al duplicato proposto nella domanda stessa e afferma chiaramente che l'informazione non /var/log/apache2/access.logè in ciò che suggerisce il duplicato.
terdon

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

Risposte:


4

È possibile informarsi sulle sue informazioni dai file di registro di Apache, ma è generalmente meglio informarsi su queste cose dall'eseguibile effettivo. L'analisi dei registri può essere complicata e probabilmente commetterai un errore se non hai familiarità con il modo in cui una determinata configurazione è stata eseguita su una scatola.

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"

Gli elementi chiave che vuoi guardare sono i seguenti.

  1. Questo ti dice la directory "root" che tutti i file a cui farà riferimento Apache inizieranno da:

     -D HTTPD_ROOT="/etc/httpd"
    
  2. I file di configurazione sono definiti, a partire da qui. Nota che questo percorso è relativo al percorso menzionato nel n. 1, quindi lo sarebbe /etc/httpd/conf/httpd.conf.

     -D SERVER_CONFIG_FILE="conf/httpd.conf"
    
  3. Il registro degli errori è qui.

     -D DEFAULT_ERRORLOG="logs/error_log"
    

    NOTA: all'inizio questo potrebbe essere un po 'confuso, ma nelle distribuzioni Red Hat c'è un collegamento che viene spesso creato in questa directory, /etc/httpdchiamato logs.

    $ ls -ld /etc/httpd/logs
    lrwxrwxrwx. 1 root root 19 Jul  9  2012 /etc/httpd/logs -> ../../var/log/httpd
    
  4. Altri file di log che potrebbero essere utilizzati da Apache saranno definiti ulteriormente nel file di configurazione, /etc/httpd/conf/httpd.conf.


1
Il comando httpd -V non funziona su Debian 9.
Christia,

Provaapache2 -V
Draex_

3

Cerca nella tua configurazione di Apache la stringa ErrorLog.

Di solito ce n'è uno per il processo Apache stesso. Ogni VirtualHost può anche definire i propri file di registro, quindi controlla anche quelli.

Se VirtualHost non definisce il proprio file di registro, utilizzerà quello specificato nella configurazione globale. Se ritieni di aver trovato il file di registro corretto ma non visualizzi le informazioni necessarie, prova ad aumentarlo LogLevel.


1
/etc/apache2# rgrep "ErrorLog" .visualizza decine di file di configurazione che specificano ${APACHE_LOG_DIR}/error.sitename.log, ma questo non è uno di quelli. /etc/apache2# rgrep "LogLevel" .mi dà solo pochi file predefiniti.
Quel ragazzo brasiliano,

2
Su Debian ${APACHE_LOG_DIR}è definito come /var/log/apache2predefinito. Controlla /etc/defaults/apache2se è stato modificato.
Bahamat,

Se non esiste un LogLevelset per un VirtualHost particolare, puoi aggiungerne uno.
Bahamat,

1

Ho appena trovato un file /etc/apache2/conf.d/other-vhosts-access-logche contiene

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

Sembra che sia un modo per combinare tutti i registri di vhosts in un singolo file. Ho controllato e gli accessi venivano registrati lì.

( fonte )

L'inserimento di un ErrorLog e di una direttiva AccessLog nel file di configurazione per quel sito mi ha fornito file di registro separati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.