CentOS 7 환경에서 Apache HTTP Server 2.4를 소스 코드로 컴파일하여 설치하는 전체 과정을 다룹니다. APR, APR-Util, PCRE, OpenSSL 등 필수 의존성 패키지를 별도 경로(Custom Path)에 설치하고 이를 Apache와 연동하는 방법을 중점적으로 설명합니다.
0. 사전 준비 (Prerequisites)
소스 컴파일을 위해 필요한 C 컴파일러와 기본 라이브러리를 설치합니다.
OS 및 컴파일 도구 확인
- OS: CentOS 7 (Kernel 3.10.0)
- 패키지 설치:
yum -y install gcc make gcc-c++ pcre-devel expat-devel
1. 의존성 라이브러리 설치 (Dependencies)
Apache 2.4 구동에 필요한 라이브러리들을 /SW/web/tools 하위에 격리하여 설치합니다. 이는 시스템 라이브러리와의 충돌을 방지하기 위함입니다.
1) APR (Apache Portable Runtime)
OS 간의 차이를 추상화해 주는 핵심 라이브러리입니다.
# 다운로드 및 압축 해제 후 이동
./configure --prefix=/SW/web/tools/apr
make && make install
2) APR-Util
APR의 유틸리티 확장판이며, 반드시 APR이 먼저 설치되어 있어야 합니다.
# --with-apr 옵션으로 위에서 설치한 경로 지정 필수
./configure --prefix=/SW/web/tools/apr-util --with-apr=/SW/web/tools/apr
make && make install
3) PCRE (Perl Compatible Regular Expressions)
URL 재작성(Rewrite) 모듈 등 정규 표현식 처리에 사용됩니다.
./configure --prefix=/SW/web/tools/pcre
make && make install
4) OpenSSL (HTTPS 지원)
보안 통신(SSL/TLS)을 위해 OpenSSL 소스를 컴파일합니다.
# config 명령어로 경로 설정
./config --prefix=/SW/web/tools/openssl --openssldir=/SW/web/tools/openssl
make && make install
2. Apache (HTTPD) 컴파일 및 설치
모든 의존성이 준비되었으므로 Apache를 컴파일합니다. configure 단계에서 앞서 설치한 라이브러리들의 경로를 정확히 지정하는 것이 핵심입니다.
Configure 실행
tar -zxvf httpd-2.4.41.tar.gz
cd httpd-2.4.41
# 설정 (한 줄로 입력)
./configure \
--prefix=/SW/web/httpd24 \
--enable-so \
--enable-rewrite \
--enable-proxy \
--enable-ssl \
--enable-mods-shared=all \
--enable-modules=shared \
--enable-mpms-shared=all \
--with-mpm=worker \
--with-apr=/SW/web/tools/apr \
--with-apr-util=/SW/web/tools/apr-util \
--with-pcre=/SW/web/tools/pcre \
--with-ssl=/SW/web/tools/openssl \
--enable-unique-id
주요 옵션 설명
--enable-so: DSO(Dynamic Shared Object) 모듈 적재 기능 활성화 (필수)--enable-mods-shared=all: 모든 모듈을 동적 모듈로 컴파일--with-mpm=worker: 멀티 프로세스 모듈(MPM)을 Worker 방식으로 지정 (성능 유리)--with-[lib]: 앞서 설치한 의존성 라이브러리 경로 연결
컴파일 및 설치
make && make install
3. 구동 및 검증 (Verification)
설치가 완료되면 서비스를 기동하고 브라우저 접속을 테스트합니다.
서비스 기동
# Apache 컨트롤러 실행
/SW/web/httpd24/bin/apachectl start
# 프로세스 확인
ps -ef | grep httpd
netstat -anotp | grep :80
방화벽 설정 (CentOS 7)
프로세스가 떠 있어도 방화벽이 막혀있으면 접속이 안 됩니다. 80 포트를 열어줍니다.
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --reload
접속 확인
브라우저 주소창에 서버 IP를 입력하여 "It works!" 페이지가 뜨는지 확인합니다.
[그림] 설치 성공 시 확인 가능한 기본 페이지
Next Step:
기본 설치가 완료되었습니다. 이제 운영 환경에 맞춰 httpd.conf에서 ServerName 경고를 해결하고, httpd-mpm.conf에서 Worker 프로세스 튜닝을 진행해 보십시오.