개발노트
고즐의 개발 및 서버 개발 노트아파치 로그 보는 방법: Rocky Linux 9에서 에러 추적하는 실전 매뉴얼
![]()
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 환경에서는 추가 로그까지 함께 확인해야 정확한 원인을 찾을 수 있습니다. 이 문서를 참고하여 서버 장애 대응 능력을 한 단계 더 끌어올려 보시길 바랍니다.