Как найти, где Apache хранит файлы журнала?

Мне нужно найти, где Apache ведет журналы доступа и ошибок для сайта.

У меня есть root-доступ к серверу, на котором размещаются десятки сайтов. Я пытаюсь отладить один из этих сайтов. Когда я просматриваю сайт, он не отображается в /var/logs/apache2/access.log или /var/logs/apache2/error.log . (Файлы есть , и на них записываются другие сайты. Фактически, есть сотни разных файлов журналов).

Не locate httpd.log не find . -iname httpd.log find . -iname httpd.log выполненный с / выдает любые результаты.

Конфигурация Apache для сайта:

 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/ 

Просмотрите конфигурацию apache для строки ErrorLog .

Обычно есть один для самого процесса Apache. Каждый VirtualHost также может определять свои собственные файлы журналов, чтобы проверить их.

Если VirtualHost не определяет свой собственный файл журнала, он будет использовать тот, который указан в глобальной конфигурации. Если вы считаете, что нашли правильный файл журнала, но не видите нужную информацию, попробуйте увеличить LogLevel .

Вы можете узнать о его информации из файлов журнала Apache, но обычно лучше узнать об этом из фактического исполняемого файла. Разбор журналов может быть сложным, и вы, вероятно, ошибетесь, если не знаете, как определенная настройка была сделана на ящике.

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" 

Ключевыми элементами, которые вы хотите посмотреть, являются следующие.

  1. Это сообщает вам каталог «root», в котором все файлы Apache будут ссылаться на:

      -D HTTPD_ROOT="/etc/httpd" 
  2. Конфигурационные файлы определены, начиная здесь. Обратите внимание, что этот путь относится к пути, указанному в # 1, поэтому он будет /etc/httpd/conf/httpd.conf .

      -D SERVER_CONFIG_FILE="conf/httpd.conf" 
  3. Журнал ошибок находится здесь.

      -D DEFAULT_ERRORLOG="logs/error_log" 

    ПРИМЕЧАНИЕ. Сначала это может быть немного запутанным, но в дистрибутивах Red Hat есть ссылка, которая часто создается в этом каталоге, /etc/httpd называемом logs .

     $ ls -ld /etc/httpd/logs lrwxrwxrwx. 1 root root 19 Jul 9 2012 /etc/httpd/logs -> ../../var/log/httpd 
  4. Другие файлы журналов, которые могут быть использованы Apache, будут определены далее в файле конфигурации, /etc/httpd/conf/httpd.conf .

Я просто нашел файл /etc/apache2/conf.d/other-vhosts-access-log который содержит

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

Похоже, это способ объединить все журналы из vhosts в один файл. Я проверил, и записи там записывались.

( источник )

Вставка директивы ErrorLog и AccessLog в файле конфигурации для этого сайта предоставила мне отдельные файлы журналов.