Apache HTTP Server

Apache HTTP Server 2.4 설치 가이드

aappsroot·2014년 8월 7일·조회 6,184

1. 개요

Apache HTTP Server 2.4를 설치하면서 발생할 수 있는 이슈와 해결 방법을 공유합니다. 아래 내용은 주로 CentOS 6.4 환경에서 소스 빌드할 때 겪은 사례를 기준으로 정리했습니다.

설정을 수정한 뒤에는 바로 재기동하기보다 먼저 설정 문법을 확인하는 것이 좋습니다. 일반적으로 apachectl configtest 또는 httpd -t로 확인할 수 있으며, 사용하는 설치 경로와 실행 파일 이름에 따라 명령은 달라질 수 있습니다.


2. apr, apr-util 사전 설치 필요

Apache HTTP Server 2.4.*는 APR 1.4 이상을 요구합니다. 하지만 CentOS 6.4 기준으로 yum을 통해 설치 가능한 APR은 1.3.9입니다. 따라서 APR 소스를 내려받아 수동으로 빌드하는 작업이 필요합니다.

만일 APR 버전이 1.4 미만이라면 빌드 시 다음과 같은 오류가 발생할 수 있습니다.

STDERR: configure: WARNING: APR version 1.4.0 or later is required, found 1.3.9
configure: WARNING: skipped APR at apr-1-config, version not acceptable
configure: error: APR not found.  Please read the documentation.

2014년 8월 기준으로는 apr-1.5.1, apr-util-1.5.3을 설치하면 됩니다. 관련 파일과 문서는 http://apr.apache.org를 참조하세요.

소스 빌드 환경에서는 APR과 apr-util을 먼저 설치한 뒤, Apache HTTP Server의 configure 단계에서 해당 경로를 올바르게 찾는지 확인해야 합니다. 여러 버전의 APR이 함께 설치되어 있다면 오래된 apr-1-config가 먼저 잡히지 않는지도 점검하는 것이 좋습니다.


3. AH01177: Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??

빌드 후 기동 시 다음과 같은 메시지가 발생할 수 있습니다.

AH01177: Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??

이 오류는 공유 메모리 기반 slotmem provider를 제공하는 mod_slotmem_shm 모듈이 로드되지 않았을 때 발생할 수 있습니다. httpd.conf에서 아래 LoadModule 라인의 주석을 제거하면 됩니다.

LoadModule 예제입니다.

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

아래처럼 여러 LoadModule 설정이 모여 있는 영역에서 해당 모듈이 주석 처리되어 있지 않은지 확인하세요.

LoadModule mime_module modules/mod_mime.so
#LoadModule ldap_module modules/mod_ldap.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_debug_module modules/mod_log_debug.so
#LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
#LoadModule remoteip_module modules/mod_remoteip.so

수정 후에는 설정 테스트를 실행해 같은 오류가 다시 발생하는지 확인한 다음 Apache를 재기동합니다.

4. Either all Options must start with + or -, or no Option may.

Apache HTTP Server 2.2에서 사용하던 아래 설정을 2.4로 그대로 가져오면 오류가 발생할 수 있습니다.

Options -Indexes FollowSymLinks

Options 지시어에서는 옵션을 혼합해서 사용할 때 모든 항목에 + 또는 -를 명시하거나, 아무 항목에도 붙이지 않아야 합니다. 따라서 다음과 같이 명시적으로 +, -를 포함해야 합니다.

Options -Indexes +FollowSymLinks

설정 파일 전체에서 같은 패턴이 반복될 수 있으므로, 2.2 설정을 2.4로 이전할 때는 Options 지시어를 함께 점검하는 것이 좋습니다.

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.