본문 바로가기
WEB&WAS/Apache

WEB) Apache 2.4.X Source Installation(소스 설치)

by LILO 2021. 7. 26.
반응형

 

Apache Source 설치를 하는 이유

1) 모듈 및 설정 파일을 자신이 원하는 곳에서 관리하기 위해

2)  RPM은 느리게 릴리즈되기 때문에 Source 설치를 함 (보안 취약점 발표시 빠른 대처  가능)

 

 

 

설치

 

 설치 사이트

 

Index of /dist/httpd

Index of /dist/httpd Apache HTTP Server Source Code Distributions This download page includes only the sources to compile and build Apache yourself with the proper tools. Download the precompiled distribution for your platform from binaries/. Important Not

archive.apache.org

설치는 공식 홈페이지에서 받아야 바이러스  위협 요소로 부터 안전해야 됩니다.

 

 

☞ Apache 유저 생성

 

Apache 서비스 계정을 생성합니다. 

# useradd -s /sbin/nologin apache

 

 

컴파일 설치를 위한 RPM 설치

# yum install  expat-devel gcc-c++ gcc openssl-devel openldap-devel zlib-devel make 

 

 

소스 설치를 위한 사전 파일 준비

 

httpd: Apache 엔진

APR, APR-Util: OS 환경 타지 않고 설치 가능,  Apache에 필요한 라이브러리가 담겨져있음

PCRE: 정규식 패턴 일치

# curl -LO https://mirror.navercorp.com/apache/httpd/httpd-2.4.48.tar.gz
# curl -LO https://mirror.navercorp.com/apache/apr/apr-1.7.0.tar.gz
# curl -LO https://mirror.navercorp.com/apache/apr/apr-util-1.6.1.tar.gz
# curl -LO http://ftp.cs.stanford.edu/pub/exim/pcre/pcre-8.45.tar.gz

 

 

압축 해제 후 디렉토리 정리

 

Apache 소스 설치시 필요한 파일들을 Apache 엔진에 "srclib"에 옮기고 "--with-included-apr"을 사용하면 apr은 따로 컴파일 설치를 하지 않아도 됩니다. 

# tar xvzf httpd-2.4.48.tar.gz ; mv httpd-2.4.48 apache2
# tar xvzf apr-1.7.0.tar.gz ; mv apr-1.7.0 apr
# tar xvzf apr-util-1.6.1.tar.gz ; mv apr-util-1.6.1 apr-util
# tar xvzf pcre-8.45.tar.gz ; mv pcre-8.45 pcre

# mkdir /APP
# mv apache2 /usr/local/src/
# mv {apr,apr-util,pcre} /usr/local/src/apache2/srclib

 

 

PCRE 소스 트리 구성 및 컴파일 설치 

 

소스 설치전에는 항상  "configure"을 이용해 소스 트리를 구성해야 됩니다. 

구성된 소스트리는 Makefile에 들어가고 make와 make install을 이용해 컴파일 설치를 합니다.

# cd /usr/local/src/apache2/srclib/pcre/
# ./configure --prefix=/usr/local/src/apache2/srclib/pcre/
# make && make install

 

PCRE의 경우 소스 설치를 하지 않고 RPM으로 설치하는 경우도 많습니다.

만약 RPM으로 설치할 경우 아래의 명령어를 수행합니다.

# yum install pcre pcre-devel

 

 

Apache 소스 트리 구성 및 설치

 

Apache 엔진에서 "configure"을 이용해 소스 트리를 구성 컴파일 설치를 합니다.

모든 모듈은 동적으로 적재할 수 있게 합니다. (-enable-mods-shared=all, --enable-so)

 

MPM은 Worker로 지정해서 최대한 많은 동접자를 받기 위한 준비를 합니다.

추후 MPM을 동적으로 변경하기 위해 --enable-mpm-shared 옵션을 사용합니다.

# cd /usr/local/src/apache2
# ./configure --prefix=/APP/apache2 --enable-module=so --enable-mods-shared=all --enable-ssl --enable-so --enable-deflate --enable-rewrite --with-included-apr --with-pcre=/APP/apache2/srclib/pcre  --with-mpm=worker --enable-mpm-shared=all
# make && make install

 

 

Apache 설치 확인

 

Apache가 잘 설치되었는지 최종 확인함

# /APP/apache2/bin/apachectl -V
Server version: Apache/2.4.48 (Unix)
Server built: Jul 26 2021 00:07:46
Server's Module Magic Number: 20120211:105
Server loaded: APR 1.7.0, APR-UTIL 1.6.1
Compiled using: APR 1.7.0, APR-UTIL 1.6.1
Architecture: 64-bit
Server MPM: worker
  threaded: yes (fixed thread count)
    forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_PROC_PTHREAD_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/APP/apache2"
-D SUEXEC_BIN="/APP/apache2/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

 

 

 Apache 실행 후 에러 발생

 

"httpd.conf"를 수정하지 않고 실행하면 아래의 에러를 방지하기위해 만날 수 있습니다.

이 에러는 초기 "httpd.conf"에 ServerName이 주석으로 되어있어서 서버의 ServerName(도메인 네임)을 인식하지 못해서 생기는 에러입니다.

AH00558: Could not reliably determine the server's fully qualified domain name

 

 

"httpd.conf" ServerName 변경

 

아래의 구문을 추가해줍니다.

기본 포트는 80 포트이고 수정하셔도 무관합니다.

# vi /APP/apache2/conf/httpd.conf

ServerName localhost

 

 

 Apache 실행

# /APP/apache2/bin/apachectl start

 

 

 Apache 실행 확인

# netstat -atnlp |grep :80
tcp6       0      0 :::80                   :::*                    LISTEN      56046/httpd

Apache 실행 장면

 

반응형