Apache Source 설치를 하는 이유
1) 모듈 및 설정 파일을 자신이 원하는 곳에서 관리하기 위해
2) RPM은 느리게 릴리즈되기 때문에 Source 설치를 함 (보안 취약점 발표시 빠른 대처 가능)
설치
☞ 설치 사이트
설치는 공식 홈페이지에서 받아야 바이러스 등 위협 요소로 부터 안전해야 됩니다.
☞ 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 |