개발노트

고즐의 개발 및 서버 개발 노트

아파치 로그 보는 방법: Rocky Linux 9에서 에러 추적하는 실전 매뉴얼

# Rocky # Linux # Apache # 로그 # error_log

Server 2025.11.19 26 회 읽음
Server 15일 전 26 회 읽음




Rocky Linux 9 환경에서 Apache 로그 완전 정복 가이드

리눅스 서버를 운영하다 보면 아파치(Apache) 웹 서버의 로그를 확인하는 일이 자주 발생합니다. 특히 Rocky Linux 9 환경에서는 기본 경로와 서비스 구조가 명확하게 정리되어 있어 초보자도 빠르게 익힐 수 있습니다. 이 문서에서는 access_log와 error_log의 위치, 실시간 모니터링 방법, 장애 상황에서 로그를 읽는 실전 방법까지 모두 정리했습니다.


Apache 로그가 저장되는 기본 경로

- Rocky Linux 9에서 Apache의 기본 로그 경로는 /var/log/httpd/ 입니다.

- access_log 는 클라이언트 요청 기록을 확인하는 용도입니다.

- error_log 는 서버 오류, PHP 오류, 모듈 오류를 확인하는 핵심 로그입니다.


자주 사용하는 Apache 로그 파일

- /var/log/httpd/access_log : 웹사이트 접속 기록 전체 확인

- /var/log/httpd/error_log : 서버 오류, PHP 오류, 모듈 문제 추적

- PHP-FPM 환경이라면 /var/log/php-fpm/www-error.log 도 함께 확인


Apache 로그 기본 확인 명령어

- 로그 파일 내용 전체 보기

cat /var/log/httpd/error_log

- 마지막 50줄만 보기

tail -n 50 /var/log/httpd/error_log

- 실시간으로 로그 변화를 모니터링

tail -f /var/log/httpd/error_log

- access_log도 동일하게 tail, cat 명령으로 확인 가능

tail -f /var/log/httpd/access_log


시간대별로 에러를 찾는 방법

- 특정 시간대(Log Timestamp)로 필터링하면 문제를 빠르게 찾을 수 있습니다.

grep "Nov 19" /var/log/httpd/error_log

- IP 기반으로 특정 공격 또는 이상 요청 추적

grep "192.168.0.1" /var/log/httpd/access_log


PHP-FPM 환경에서 추가적으로 확인할 로그

- PHP가 Apache 내부에서 실행되지 않고 PHP-FPM을 통해 실행될 경우, PHP 에러는 Apache error_log에 기록되지 않을 수 있습니다.

- Rocky Linux 9 기본 위치는 다음과 같습니다.

/var/log/php-fpm/www-error.log

- PHP 화면 에러가 보이지 않는다면 대부분 PHP-FPM 설정 문제입니다.


Apache 서비스 상태 확인 방법

- 현재 Apache 동작 상태 확인

systemctl status httpd

- Apache 재시작

sudo systemctl restart httpd

- 서비스 자동 실행 설정 여부 확인

systemctl is-enabled httpd


HTTP 500 오류가 발생했을 때 확인 절차

- 첫 번째로 /var/log/httpd/error_log 를 확인합니다.

- PHP 오류라면 PHP-FPM 로그도 반드시 확인해야 합니다.

- 디렉토리 권한 오류는 AH00035, AH01276 등으로 표시됩니다.


자주 발생하는 Apache 로그 메시지 설명

- AH01276: DirectoryIndex가 없거나 인덱스 파일을 찾지 못함

- AH01071: Primary script unknown — PHP-FPM 경로 설정 오류

- AH00035: 접근 권한 또는 퍼미션 문제

- Segmentation Fault: 모듈 충돌 또는 확장 모듈 문제


로그 파일이 너무 커졌을 때 해결하는 방법

- 로그 파일 크기 확인

du -h /var/log/httpd/

- 로그 초기화 (주의: 삭제 아님, 내용만 비움)

echo "" > /var/log/httpd/error_log

- logrotate를 이용하면 자동으로 관리할 수 있음

cat /etc/logrotate.d/httpd



최신 로그를 빠르게 확인하는 실전 명령어

- Apache 운영 중 가장 많이 사용하는 명령은 tail 명령입니다.

- 에러가 언제 발생했는지 즉시 확인할 때 매우 효과적입니다.


마지막 10줄만 확인하기

tail -n 10 /var/log/httpd/error_log

- 가장 최근 오류 상태를 빠르게 파악할 때 사용합니다.


로그 마지막 줄 1줄만 보기

tail -n 1 /var/log/httpd/error_log

- 최신 로그 타임스탬프를 빠르게 확인할 수 있습니다.


access_log의 최신 10줄 보기

tail -n 10 /var/log/httpd/access_log

- 방문자 요청이 정상인지, 특정 IP에서 공격 패턴이 있는지 확인할 때 유용합니다.


오늘(당일) 발생한 오류만 추출하기

- 로그가 너무 많은 경우 날짜 필터링이 매우 유용합니다.

grep "$(date +%b %e)" /var/log/httpd/error_log

- 예: Nov 19 날짜 로그만 출력 됩니다.


특정 키워드가 포함된 로그만 필터링

grep "AH01071" /var/log/httpd/error_log

- PHP-FPM 관련 “Primary script unknown” 같은 특정 문제를 추적할 때 필수적입니다.


특정 IP에서 발생한 요청만 확인

grep "192.168.0.10" /var/log/httpd/access_log

- 공격 의심 IP의 접속 패턴을 분석할 수 있습니다.


로그 결과를 줄 번호와 함께 보기

- 어떤 라인에서 문제가 발생했는지 직관적으로 확인할 때 유용합니다.

nl /var/log/httpd/error_log | tail -n 20


로그 파일 크기 확인

- 로그 파일이 너무 커지면 Apache 동작에 영향을 줄 수 있습니다.

du -h /var/log/httpd/error_log


로그 파일을 한 번에 초기화하기

- 파일을 삭제하지 않고 내용만 비우는 안전한 방법입니다.

echo "" > /var/log/httpd/error_log



마무리

Rocky Linux 9에서 Apache 로그를 확인하는 것은 서버 운영의 핵심입니다. error_log와 access_log만 정확히 이해해도 장애 대응 속도가 최소 10배 빨라지며, PHP-FPM 환경에서는 추가 로그까지 함께 확인해야 정확한 원인을 찾을 수 있습니다. 이 문서를 참고하여 서버 장애 대응 능력을 한 단계 더 끌어올려 보시길 바랍니다.