본문 바로가기

리눅스

APM 소스컴파일 설치(1) - Apache

반응형

1. 설치환경

 CentOS7

 

# cat /etc/*release*


 

2. 소스설치를 하는 이유?

 패키지 설치로 간편하게 설치를 할 수 있지만 불필요하게 설치되는 파일들이 시스템의 자원을 사용하게 되고 패키지 단위로 설치되기에 관리적으로 문제가 발생 가능하다. 소스 설치로 정말 필요한 기능만을 설치한다.

 

1) 리눅스에서 기본 소스설치 할때 소스파일 (설치파일은)

     /usr/local/src/ 에 다운받거나 저장한다
2) 소스설치 파일은 지우지 않는다.

 

[출처: 

https://blog.naver.com/PostView.nhn?blogId=tawoo0&logNo=221582362314&proxyReferer=https:%2F%2Fwww.google.co.kr%2F]

 

 

3. 소스 설치 파일 다운로드

 

# cd /usr/local/src 에 소스파일 받는다

Apache

 

1) Apache 2.4.46
wget https://downloads.apache.org//httpd/httpd-2.4.46.tar.gz

2) apr1.7.0 
wget https://downloads.apache.org//apr/apr-1.7.0.tar.gz 

3) apr-util1.161
wget https://downloads.apache.org//apr/apr-util-1.6.1.tar.gz 

4) pcre-8.44
wget ftp://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
or
wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz

 

4. 압축해제

tar xvf httpd2.4.46.tar.gz 
tar xvf apr-1.7.0.tar.gz 
tar xvf apr-util-1.6.1.tar.gz
tar xvf pcre-8.44.tar.gz 

 

5. 기본 필수 패키지 설치

yum install gcc gcc pcre-develgcc gcc-c++ ncurses ncursrs-devel cmake expat-devel libexpat-dev apr-util-devel openssl-devel

 

 

6. 소스 컴파일

1) pcre-8.44

# cd /usr/local/src/pcre-8.44

# ./configure --prefix=/usr/local

# make && make install

 

 

2)  apr-1.7.0

# cd  /usr/local/src/apr-1.7.0

# ./configure --prefix=/usr/local/apr

# make && make install

 

3) apr-util-1.6.1

# cd  /usr/local/src/apr-util-1.6.1

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

# make && make install

 

4) httpd2.4.46

# cd  /usr/local/src/httpd-2.4.46

# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-mods-shared=all \
--enable-modules=shared --enable-ssl --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-mpm=prefork --enable-http2

# make && make install

 

※ 오류

더보기

ㅁ configure 오류

1) enable-ssl 옵션으로 인한 오류

 # yum install openssl-devel

 

2) enable-http2 옵션으로 인한 오류

nghttp2 설치

 

# cd /usr/local/src

# wget https://github.com/nghttp2/nghttp2/releases/download/v1.37.0/nghttp2-1.37.0.tar.gz 

# tar xvfz nghttp2-1.37.0.tar.gz

# cd nghttp2-1.37.0

# ./configure

# make && make install

 

ㅁ make 오류

1) httpd 에서 exports.lo 오류 발생

# yum remove apr 후 /usr/local/apr 과 /usr/local/apr-util 모두 삭제후 재 설치

 

 


7. 소스컴파일 후 작업

 

# cp -arp /usr/local/apache/bin/apachectl /etc/init.d/apachectl

 

# vi /etc/init.d/apachectl
아래 내용 추가

 

#!/bin/sh
#
# chkconfig: 2345 90 90
# description: init file for Apache server daemon
# processname: /usr/local/apache/bin/apachectl
# config: /usr/local/apache/conf/httpd.conf
# pidfile: /usr/local/apache/logs/httpd.pid

# chkconfig –add apachectl
# chkconfig apachectl on

================================

# vi /etc/systemd/system/apache.service

 

[Unit]
Description=The Apache HTTP Server

[Service]
Type=forking
#EnvironmentFile=/usr/local/apache2/bin/envvars
PIDFile=/usr/local/apache2/logs/httpd.pid
ExecStart=/usr/local/apache2/bin/apachectl start
ExecReload=/usr/local/apache2/bin/apachectl graceful
ExecStop=/usr/local/apacher2/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true

[Install]
WantedBy=multi-user.target

# systemctl daemon-reload
# systemctl enable apache

 

apache config 검사

# /usr/local/apache/bin/apachectl -t  

 

 

# /usr/local/apache/bin/apachectl -S