Apache가 로그 파일을 보관하는 위치를 어떻게 알 수 있습니까?


11

Apache가 사이트 의 액세스 및 오류 로그유지하는 위치 를 찾아야 합니다.

수십 개의 사이트가 호스팅되는 서버에 대한 루트 액세스 권한이 있습니다. 해당 사이트 중 하나를 디버깅하려고합니다. 사이트를 탐색 할 때 /var/logs/apache2/access.log또는에 표시되지 않습니다 /var/logs/apache2/error.log. (파일 이 있고 다른 사이트가 해당 파일 기록됩니다. 실제로 수백 개의 다른 로그 파일이 있습니다.)

어느 쪽 locate httpd.logfind . -iname httpd.log에서 수행되지 /문제가 어떤 결과를.

사이트의 아파치 구성은 다음과 같습니다.

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
이것은 속임수가 아니며 OP는 질문 자체에서 제안 된 복제본과 연결되어 있으며 정보가 /var/log/apache2/access.log복제본이 제안 하는 정보가 아니라는 것을 분명히 나타 냅니다.
terdon

시도sudo lsof -nP -c apache2 -c httpd | grep -i log
Stéphane Chazelas

답변:


5

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. 여기에는 Apache가 참조 할 모든 파일이 시작되는 "root"디렉토리가 표시됩니다.

     -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"
    

    참고 : 이 사람이 조금 자주,이 디렉토리에 구성되어있는 링크가 처음에 레드햇 배포판에 혼동 될 수 /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.


1
httpd -V 명령은 데비안 9에서 작동하지 않습니다.
Christia

시도apache2 -V
Draex_

3

아파치 설정에서 문자열을 찾으십시오 ErrorLog.

일반적으로 Apache 프로세스 자체를위한 것이 있습니다. 각 VirtualHost는 자체 로그 파일도 정의 할 수 있으므로 해당 로그 파일도 확인하십시오.

VirtualHost가 자체 로그 파일을 정의하지 않으면 전역 구성에 지정된 로그 파일을 사용하게됩니다. 올바른 로그 파일을 찾았지만 필요한 정보가 표시되지 않으면을 늘리십시오 LogLevel.


1
/etc/apache2# rgrep "ErrorLog" .을 지정하는 수십 개의 구성 파일을 표시 ${APACHE_LOG_DIR}/error.sitename.log하지만 이것 중 하나는 아닙니다. /etc/apache2# rgrep "LogLevel" .기본 파일 몇 개만 가져옵니다.
그 브라질 사람

2
On Debian ${APACHE_LOG_DIR}/var/log/apache2기본적으로 정의되어 있습니다. 변경되었는지 확인 /etc/defaults/apache2하십시오.
bahamat

LogLevel특정 VirtualHost에 대한 설정 이없는 경우 추가 할 수 있습니다.
bahamat

1

방금 /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

가상 호스트의 모든 로그를 단일 파일로 결합하는 방법 인 것 같습니다. 확인했으며 액세스가 기록되었습니다.

( 소스 )

해당 사이트의 구성 파일에 ErrorLog 및 AccessLog 지시문을 삽입하면 별도의 로그 파일이 제공됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.