1. 설치

#!/bin/bash
 
## Common Variable
 
export SVC_DIR=/svc1
export LOG_DIR=/log1
export DAT_DIR=/dat1
export REP_DIR=/Downloads
export HTTP_USER=httpuser
export HTTP_VER=2.2.26
export JAVA_HOME=/usr/java7_51
 
if [ -e /etc/centos-release ]; then
  export INSTALLER=yum
elif  [ -e /etc/lsb-release ]; then
  export INSTALLER=apt-get
else
  export INSTALLER=yum
fi
 
## Create Directory
 
mkdir -p ${SVC_DIR}/http
mkdir -p ${LOG_DIR}/http
mkdir -p ${DAT_DIR}/http
 
## Install Package
 
${INSTALLER} -y install ant
${INSTALLER} -y install gcc
${INSTALLER} -y install apr-util-devel
${INSTALLER} -y install openssl-devel
 
## Set Variable
 
HTTP_SVC_DIR=${SVC_DIR}/http
HTTP_LOG_DIR=${LOG_DIR}/http
FILE_NAME=httpd-2.2.26
 
## Download HTTP Server
 
mkdir ${REP_DIR}/http
cd ${REP_DIR}/http
wget http://mirror.apache-kr.org//httpd/${FILE_NAME}.tar.gz
gzip -d ${FILE_NAME}.tar.gz
tar -xvf ${FILE_NAME}.tar
 
## Compile HTTP Server
 
cd ${FILE_NAME}
./configure \
  --prefix=${HTTP_SVC_DIR}/${HTTP_VER} \
  --enable-modules=all \
  --enable-mods-shared=most \
  --with-mpm=worker \
  --enable-proxy \
  --enable-proxy-http \
  --enable-proxy-connect \
  --enable-cache \
  --enable-mem-cache \
  --enable-disk-cache \
  --enable-deflate \
  --enable-ssl \
  --with-ssl=/usr/include/openssl
make
make install
 
## Post Work
 
mkdir -p ${HTTP_SVC_DIR}/${HTTP_VER}/servers
mkdir -p ${HTTP_LOG_DIR}/${HTTP_VER}/servers
chown -R ${HTTP_USER}:${HTTP_USER} ${HTTP_SVC_DIR}/${HTTP_VER}
chown -R ${HTTP_USER}:${HTTP_USER} ${HTTP_LOG_DIR}/${HTTP_VER}

2. 주요 빌드 옵션

Apache HTTP Server 빌드 옵션 중 몇 가지만 언급합니다.

  • --enable-mods-shared=most

DSO (Dynamic Shared Object) 설정 및 대부분의 so 파일을 설치한다. 참고로 DSO 방식과 Static Object 방식이 있으며, Static Object 방식은 특정 모듈을 추가하고자 하는 경우 다시 설치해야 하지만, DSO 방식은 모듈만 추가하면 된다.

  • --with-mpm=worker

MPM(Multi Processing Module)을 선택하는 것으로 prefork, worker가 있으며 default는 prefork입니다. httpd_mpm.conf에 대해서는 조만간 따로 한번 이야기를 해봐야겠지요.


3. 필요 패키지 

다음은 configure 수행 시 발생하는 각 오류 상황에서 설치할 패키지입니다.

checking whether the C compiler works... no
configure: error: in `/Downloads/http/httpd-2.2.26':
configure: error: C compiler cannot create executables

 -> gcc 설치

checking for zlib location... not found
checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures

 -> zlib-devel

no SSL-C headers found
configure: error: ...No recognized SSL/TLS toolkit detected

 -> openssl-devel