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