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
'WEB&WAS > Apache' 카테고리의 다른 글
WEB) HTTP vs HTTPS (0) | 2022.02.22 |
---|---|
WEB/WAS) 티스토리 접속 지연 원인 예측해보기 (0) | 2022.01.04 |
WEB) Apache와 Tomcat 연동하기 (AJP,mod_jk) (0) | 2022.01.03 |
WEB) Web Server Kernel Parameter에 대한 이야기 (0) | 2021.04.24 |
WEB) Web Server의 개념과 기술 지원 (1) | 2021.04.24 |