Comment trouver où Apache conserve les fichiers journaux?

10

J'ai besoin de trouver où Apache conserve les journaux d'accès et d'erreur pour un site.

J'ai un accès root à un serveur sur lequel des dizaines de sites sont hébergés. J'essaie de déboguer l'un de ces sites. Lorsque je navigue sur le site, il n'apparaît pas sur /var/logs/apache2/access.logou /var/logs/apache2/error.log. (Les fichiers sont là et d'autres sites y sont connectés. En fait, il existe des centaines de fichiers journaux différents).

Ni locate httpd.logni find . -iname httpd.logeffectué à l' /émission aucun résultat.

La configuration d'apache pour le site est:

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/
Ce gars brésilien
la source
6
Ce n'est pas dupe, l'OP s'est lié au doublon proposé dans la question elle-même et indique clairement que l'info n'est pas dans /var/log/apache2/access.loglaquelle se trouve ce doublon.
terdon
Trysudo lsof -nP -c apache2 -c httpd | grep -i log
Stéphane Chazelas

Réponses:

4

Vous pouvez vous renseigner sur ses informations à partir des fichiers journaux d'Apache, mais il est généralement préférable de se renseigner sur ces choses à partir de l'exécutable réel. L'analyse des journaux peut être délicate et vous ferez probablement une erreur si vous n'êtes pas familier avec la façon dont une configuration particulière a été effectuée sur une boîte.

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"

Les éléments clés que vous souhaitez examiner sont les suivants.

  1. Cela vous indique le répertoire "racine" à partir duquel tous les fichiers auxquels Apache fera référence commencent:

     -D HTTPD_ROOT="/etc/httpd"
    
  2. les fichiers de configuration sont définis, en commençant ici. Notez que ce chemin est relatif au chemin mentionné dans # 1, il en serait ainsi /etc/httpd/conf/httpd.conf.

     -D SERVER_CONFIG_FILE="conf/httpd.conf"
    
  3. Le journal des erreurs est ici.

     -D DEFAULT_ERRORLOG="logs/error_log"
    

    REMARQUE: celui-ci peut être un peu déroutant au début, mais sur les distributions Red Hat, il existe un lien souvent créé dans ce répertoire, /etc/httpdappelé logs.

    $ ls -ld /etc/httpd/logs
    lrwxrwxrwx. 1 root root 19 Jul  9  2012 /etc/httpd/logs -> ../../var/log/httpd
    
  4. D' autres fichiers journaux qui pourraient être utilisés par Apache seront définies plus loin dans le fichier de configuration, /etc/httpd/conf/httpd.conf.

slm
la source
1
La commande httpd -V ne fonctionne pas sur Debian 9.
Christia
Essayezapache2 -V
Draex_
3

Regardez dans votre configuration apache pour la chaîne ErrorLog.

Habituellement, il y en a un pour le processus Apache lui-même. Chaque VirtualHost peut également définir ses propres fichiers journaux, vérifiez-les également.

Si VirtualHost ne définit pas son propre fichier journal, il utilisera celui spécifié dans la configuration globale. Si vous pensez avoir trouvé le fichier journal correct mais que vous ne voyez pas les informations dont vous avez besoin, essayez d'augmenter le fichier LogLevel.

bahamat
la source
1
/etc/apache2# rgrep "ErrorLog" .affiche des dizaines de fichiers de configuration qui spécifient ${APACHE_LOG_DIR}/error.sitename.log, mais ce n'est pas l'un d'entre eux. /etc/apache2# rgrep "LogLevel" .ne me donne que quelques fichiers par défaut.
Ce gars brésilien le
2
Sur Debian ${APACHE_LOG_DIR}est défini comme /var/log/apache2par défaut. Vérifiez /etc/defaults/apache2si elle a été modifiée.
bahamat
S'il n'y a pas LogLevelensemble pour un hôte virtuel , vous pouvez ajouter un particulier.
bahamat
1

Je viens de trouver un fichier /etc/apache2/conf.d/other-vhosts-access-logqui contient

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

On dirait que c'est un moyen de combiner tous les journaux des vhosts dans un seul fichier. J'ai vérifié et les accès y étaient enregistrés.

( source )

L'insertion d'un ErrorLog et d'une directive AccessLog dans le fichier de configuration de ce site m'a fourni des fichiers journaux distincts.

Ce gars brésilien
la source