[Apache] Linux 소스 컴파일 설치 가이드 (httpd, apr, pcre)

Linux 환경에서 yum이나 apt 같은 패키지 매니저 대신, Apache HTTP Server(httpd)를 소스 코드로 직접 컴파일하여 설치하는 방법을 정리합니다. 특정 버전이 필요하거나, 모듈을 커스터마이징해야 할 때 필수적인 기술입니다.

0. 시작하기 전에 (Why & Prerequsite)

왜 소스 컴파일을 하나요?

  • 버전 관리: OS 저장소(Repository)에서 제공하는 구버전이 아닌, 최신 보안 패치가 적용된 버전을 사용할 수 있습니다.
  • 최적화: 불필요한 모듈을 빼거나, 경로를 /usr/local이 아닌 /WAS 등 원하는 곳으로 지정하여 관리 효율성을 높일 수 있습니다.

필수 컴파일 도구 설치

소스 코드를 기계어로 번역하기 위해서는 컴파일러(gcc)와 빌드 도구(make)가 반드시 필요합니다. 설치 전 아래 명령어로 환경을 준비해주세요.

# CentOS/RHEL 기준
yum install -y gcc gcc-c++ make expat-devel

1. 소스 파일 다운로드

각 프로젝트의 공식 홈페이지에서 Stable(안정) 버전을 다운로드합니다. 보통 /usr/local/src 나 임시 디렉토리에서 작업합니다.

다운로드 링크

※ Apache 2.4 버전부터는 APR(Apache Portable Runtime)과 PCRE(정규표현식 라이브러리)가 내장되어 있지 않아 별도 설치가 필수입니다.


2. 의존성 라이브러리 설치

Apache 본체를 설치하기 전에 기초가 되는 라이브러리를 먼저 깔아야 합니다. 관리 편의를 위해 모든 경로는 /WAS 하위로 통일하겠습니다.

1) APR (Apache Portable Runtime) 설치

OS(Linux, Windows 등)에 상관없이 Apache가 실행될 수 있도록 도와주는 플랫폼 추상화 라이브러리입니다.

tar -zxvf apr-1.5.2.tar.gz
cd apr-1.5.2

# --prefix 옵션으로 설치 경로 지정
./configure --prefix=/WAS/apr
make && make install

2) APR-Util 설치

APR의 유틸리티 확장판입니다. 반드시 위에서 설치한 APR의 경로를 지정해야 합니다.

tar -zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4

# --with-apr 옵션 중요!
./configure --prefix=/WAS/aprutil --with-apr=/WAS/apr
make && make install

3) PCRE (Perl Compatible Regular Expressions) 설치

Apache의 URL 재작성(Rewrite) 모듈 등에서 사용하는 정규표현식 라이브러리입니다.

tar -zxvf pcre-8.37.tar.gz
cd pcre-8.37

./configure --prefix=/WAS/pcre
make && make install

3. Apache HTTP Server 설치

이제 주인공인 Apache를 설치합니다. configure 단계에서 앞서 설치한 라이브러리들의 경로를 연결해주는 것이 핵심입니다.

Configuration 실행

tar -zxvf httpd-2.4.16.tar.gz
cd httpd-2.4.16

# 한 줄씩 옵션을 확인하며 입력하세요.
./configure \
--prefix=/WAS/apache \
--enable-mods-shared=all \
--enable-so \
--enable-rewrite \
--enable-auth-digest \
--with-apr=/WAS/apr \
--with-apr-util=/WAS/aprutil \
--with-pcre=/WAS/pcre

주요 옵션 설명

  • --enable-mods-shared=all: 모듈을 동적(Dynamic)으로 컴파일하여, 추후 httpd.conf에서 Load/Unload가 가능하게 합니다.
  • --enable-rewrite: URL 주소를 변경하는 Rewrite 기능을 활성화합니다. (실무 필수)

컴파일 및 설치

# 에러 없이 완료되면 실행
make && make install

4. 기동 및 검증 (Verification)

설치가 끝났다고 바로 브라우저가 열리는 것은 아닙니다. 프로세스를 띄우고 포트를 확인해야 합니다.

1) 서비스 기동

# Apache 기동 스크립트 실행
/WAS/apache/bin/apachectl start

# 프로세스 확인 (httpd 프로세스가 보여야 함)
ps -ef | grep httpd

2) 포트 리슨 확인

웹 서버의 기본 포트인 80번이 열려있는지 확인합니다.

netstat -anotp | grep :80

3) 방화벽 설정 (중요!)

프로세스가 떴는데 브라우저 접속이 안 된다면 99%는 방화벽 문제입니다. 테스트를 위해 방화벽을 잠시 끄거나 80포트를 열어야 합니다.

# CentOS 7 (firewalld) 포트 오픈 예시
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --reload

4) 최종 접속 테스트

PC 브라우저 주소창에 http://[서버IP]를 입력합니다. 화면에 "It works!"가 보인다면 성공입니다.


Next Step:
이제 /WAS/apache/conf/httpd.conf 파일을 열어 ServerName 경고 메시지를 해결하고, DocumentRoot(웹 문서 위치)를 실제 운영 경로로 변경해 보세요.

Comments