Engineering/WEB & WAS
[Apache] 아파치 HTTPD Server v2.4.52 설치 (Source Compile)
1. Prerequisite
configure 작업 시 필요한 유틸리티 설치
(리눅스 버전에 따라 일부 작업은 불필요할 수 있다.)
① C 및 C++ Compiler 설치
- Source Compile을 진행하기 위해서는 gcc Compiler가 필요하다.
sudo yum install -y gcc
sudo yum install -y gcc-c++
# 한 줄에 한번에 설치
sudo yum install -y gcc gcc-c++
② XML parser 라이브러리 설치
- Apache 2.4를 설치하기 위해서는 apr, apr-util, pcre 패키지를 설치해야 한다.
- 이 패키지들을 설치하기 위해서는 XML parser 라이브러리를 설치해야 한다.
sudo yum -y install expat
sudo yum -y install expat-devel
sudo yum -y install expat-static
# 한줄에 한번에 설치
sudo yum install -y expat expat-devel expat-static
③ PCRE 설치
- PCRE( Perl Compatible Regular Expressions )는 펄 호환 정규 표현식으로서, 정규식 패턴 일치를 구현하는 함수의 집합
- 최근 Apache, PHP, KDE 등을 포함한 오프 소스 프로젝트에서 사용되고 있으며, 아파치 2.4 버전을 설치할 때는 pcre를 설치해야 한다.
💡 apr (Apache Portable Runtime ) , apr-util 💡
- 아파치 2.0을 설치할 때는 yum으로 apr, apri-util을 설치하지 않았음
- 아파치 2.4 이상에서는 apr, apr-util이 없기 때문에 별도로 설치해야 함.
2. Apache v2.4.52설치
- Apache httpd: https://httpd.apache.org/download.cgi#apache24
- Apache APR& APR util: https://apr.apache.org/
- PCRE: https://www.pcre.org
# /tmp/lib 디렉토리 이동 웹에서 필요파일 다운로드
mkdir /tmp/lib
cd /tmp/lib
# 아파치 공식홈페이지를 통한 다운로드 & 압축해제
# https://www.pcre.org/
wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz/download
tar xvfz download
# Apache 설치 & 압축해제
wget https://dlcdn.apache.org//httpd/httpd-2.4.52.tar.gz
tar xvfz httpd-2.4.52.tar.gz
# APR 설치 & 압축해제
wget https://mirror.navercorp.com/apache//apr/apr-1.7.0.tar.gz
tar xvfz apr-1.7.0.tar.gz
# APR-util 설치 & 압축해제
wget https://mirror.navercorp.com/apache//apr/apr-util-1.6.1.tar.gz
tar xvfz apr-util-1.6.1.tar.gz
# /tmp/lib 내용 확인
[root@bastion lib]# ls
apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1 apr-util-1.6.1.tar.gz download httpd-2.4.51 httpd-2.4.51.tar.gz pcre-8.45
2-1. 디렉토리 이동
# 압축을 푼 4개 디렉터리를 /usr/local/로 이동
mv apr-1.7.0 apr-util-1.6.1 httpd-2.4.52 pcre-8.45 /usr/local/
2-2. APR 설치
# APR 설치
cd /usr/local/src/apr-1.7.0
# 절대경로 지정
# ./configure = 설치를 위한 환경 설정 | --prefix = 절대경로 --with 라이브러리 참조
./configure --prefix=/usr/local/src/apr-1.7.0
# 설치
make && make install
💡 make & make install
make = configure에 의해 만들어진 makefile로 프로그램 컴파일
make install = 컴파일된 프로그램, 환경파일, 데이터 파일을 지정된 위치에 복사하는 과정
2-3. APR-UTIL 설치
# APR-UTIL 경로 이동
cd /usr/local/src/apr-util-1.6.1
# 반드시 --with 뒤에 내가 설치한 APR 버전을 넣는다
./configure --prefix=/usr/local/src/apr-util-1.6.1 --with-apr=/usr/local/src/apr-1.7.0
# 설치
make && make install
2-4. PCRE 설치
cd /usr/local/src/pcre-8.45
# 반드시 --with 뒤에 내가 설치한 APR 버전을 넣는다
./configure --prefix=/usr/local/src/pcre-8.45 \
--with-apr-util=/usr/local/src/apr-util-1.6.1 \
--with-apr=/usr/local/src/apr-1.7.0
# 설치
make && make install
2-5. 아파치(httpd) 설치
# 압축해제한 httpd 디렉토리 이동
cd /usr/local/src/httpd-2.4.52/
# 절대경로 지정
./configure --prefix=/usr/local/apache2.4.52 \
--enable-modules=most --enable-mods-shared=all --enable-so \
--with-apr=/usr/local/src/apr-1.7.0 \
--with-apr-util=/usr/local/src/apr-util-1.6.1 \
--with-pcre=/usr/local/src/pcre-8.45
# 설치
make && make install
# 서버 이름 설정
vim /usr/local/apache2.4/conf/httpd.conf
(Error) 서버 이름 설정 안할시 나타나는 에러
# : <https://httpd.apache.org/docs/2.4/en/mod/mod_authz_core.html#require>
# 서버 이름 설정 안할시 나타나는 에러
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::fe:64ff:fe01:513a%eth0. Set the 'ServerName' directive globally to suppress this message
💡 ServerName
서버의 자신의 도메인 명을 적는 부분이다. 처음 설치 시 기본적으로 주석처리가 되어 있으며 도메인이 없으면 IP 주소를 적는다.
💡 Proxy 연동시 ServerName & <Directory>반드시 설정
- Require all granted: 무조건 허용
- Require all denied: 무조건 금지
- Require ip 10 172.20 192.168.2: 특정 아이피만 접근 허용.
(여기서는 10, 172.20, 192.168.2로 시작하는 아이피 세 개를 허용한다는 의미)
3. 실행하기
cd /usr/local/apache2.4.52
# 버전확인
[root@test apache2.4.52]# ./bin/httpd -V
Server version: Apache/2.4.52 (Unix)
Server built: Dec 29 2021 05:18:43
Server's Module Magic Number: 20120211:121
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: event
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="/usr/local/apache2.4.52"
-D SUEXEC_BIN="/usr/local/apache2.4.52/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"
# 아파치 시작
[root@test apache2.4.52]# ./bin/apachectl start
[root@test apache2.4.52]# netstat -tulpn | grep httpd
tcp6 0 0 :::80 :::* LISTEN 25045/httpd
[root@test apache2.4.52]# ps -ef | grep httpd
root 25045 1 0 05:30 ? 00:00:00 /usr/local/apache2.4.52/bin/httpd -k start
daemon 25046 25045 0 05:30 ? 00:00:00 /usr/local/apache2.4.52/bin/httpd -k start
daemon 25047 25045 0 05:30 ? 00:00:00 /usr/local/apache2.4.52/bin/httpd -k start
daemon 25048 25045 0 05:30 ? 00:00:00 /usr/local/apache2.4.52/bin/httpd -k start
root 25134 4211 0 05:30 pts/0 00:00:00 grep --color=auto httpd
curl localhost 를 했을 때 It works! 라고 뜨면 정상적으로 아파치가 실행된 것이다.
[root@test apache2.4.52]# curl localhost
<html><body><h1>It works!</h1></body></html>
참조
아파치(apache) 웹 서버 수동으로 구축하기 https://ansan-survivor.tistory.com/120?category=363952
아파치 2.4 소스 컴파일 설치 https://victorydntmd.tistory.com/220
아파치 permission(디렉토리) 설정 https://mytory.net/archives/3143
아파치 웹 서버 관련 파일/디렉토리 https://tar-cvzf-studybackup-tar-gz.tistory.com/12
포트번호로 Apache 가상 호스트 설정하기 https://mytory.net/archives/13
'Engineering > WEB & WAS' 카테고리의 다른 글
[Tomcat] Crontab을 이용한 톰캣 로그 관리 (0) | 2021.11.22 |
---|---|
[Tomcat] 톰캣 서비스 등록 (0) | 2021.11.22 |
[Tomcat] Tomcat v8.5 설치 (Source Compile) (0) | 2021.11.22 |
[WEB/WAS] Apache↔ Tomcat Mod_Proxy 연동 (0) | 2021.11.21 |
[WEB/WAS] Apache↔Tomcat mod_jk연동 (+ APR Connector) (2) | 2021.11.21 |
댓글