본문 바로가기
5.Linux

4. [CentOS7] 컴파일 하여 아파치(Apache) 설치

by 갓대희 2018. 1. 23.
반응형

[CentOS7] 컴파일 하여 아파치(Apache) 설치



▶ 0. gcc 패키지 설치



# yum -y install gcc make gcc-c++ pcre-devel





GCC ?

 - GNU 컴파일러 모음(GNU Compiler Collection, 줄여서 GCC) GNU 프로젝트의 일환으로 개발되어 널리 쓰이고 있는 컴파일러이다자유 소프트웨어 중에 가장 잘 알려진 것들 중 하나이다.

원래 GCC C만을 지원했던 컴파일러로 이름도 "GNU C 컴파일러"였지만후에 C++, Java, Fortran, Ada 등 여러 언어를 컴파일할 수 있게 되면서현재의 이름으로 바뀌었다.

 

 - GCC는 리처드 스톨만이 1987 GNU 프로젝트의 컴파일러로 작성했다. GNU 프로젝트에 컴파일러가 없었기 때문에 이 개발은 자유 소프트웨어 재단이 후원하였다. 1997년 개발 과정은 공개되었으며속도 또한 빨라졌다. 1999년 첫 버전이 나왔다현재 GCC는 전세계적으로 관리되고 있으며다양한 중앙 처리 장치를 처리할 수 있게 되었다.

 GNU 시스템의 공식 컴파일러이므로 GCC는 많은 컴파일러와 운영 체제를 만드는 데 사용되었다한편시스템 네이티브 컴파일러를 사용했을 때 비해서 GCC를 사용하면 같은 파서로 코드를 처리하므로 이식성을 향상시킬 수 있다. GCC는 상용 컴파일러에 비해서 느린 코드를 생성했지만 최근 많이 개선되었다.



( 다음에서 각각의 설치할 패키지의 최신 버전 확인 가능 )

apache : http://www.apache.org/dyn/closer.cgi

apr/apr-util : https://apr.apache.org

pcre :  http://www.pcre.org

 


▶ 1. 아파치 다운로드

 - http://httpd.apache.org/download.cgi

 


# cd /tmp/lib

# wget http://mirror.apache-kr.org//httpd/httpd-2.4.29.tar.gz

 

 


▶ 2. apr 다운로드

 - http://mirror.apache-kr.org/apr/



# wget http://apache.mirror.cdnetworks.com//apr/apr-1.6.3.tar.gz 



 

▶ 3. apr-util 다운로드



wget http://apache.mirror.cdnetworks.com//apr/apr-util-1.6.1.tar.gz



 

▶ 4. pcre 다운로드

 - http://pcre.org/

 - ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/



wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz



 


▶ 5. 각 파일 압축풀기 및 이동



tar xvfz httpd-2.4.29.tar.gz

mv httpd-2.4.29/ /usr/local/src

 

tar xvfz apr-1.6.3.tar.gz

mv apr-1.6.3/ /usr/local/src

 

tar xvfz apr-util-1.6.1.tar.gz

mv apr-util-1.6.1 /usr/local/src

 

tar xvfz pcre-8.41.tar.gz

mv pcre-8.41/ /usr/local/src

 

cd /usr/local/src


 


 

▶ 6. 설치

 

6.1 APR & APR UTIL 설치


 - 톰캣은 뛰어난 확장성, 성능 및 기본 서버 기술로 더 나은 통합을 제공하기 위해 Apache Portable Runtime를 사용할 수 있다. 아파치 포터블 런타임은 아파치 HTTP 서버 2.x.의 핵심이며 휴대용 라이브러리이다.

 이런 APR은 고급 IO 기능(:sendfile, epoll and OpenSSL )에 대한 접근을 포함하여 OS 수준의 기능 (난수 생성, 시스템 상태), 그리고 기본 프로세스 처리(공유 메모리, NT 파이프와 유닉스 소켓) 등 많은 용도로 사용되고있다.

 

** APR (Apache Portable Runtime)


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

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

 

# make && make install



 

** APR UTIL


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

./configure --prefix=/usr/local/src/apr-util-1.6.1 --with-apr=/usr/local/src/apr-1.6.3

 

make && make install



 

혹시 APR UTIL 설치시 다음과 같은 에러가 발생한 적이 있다면 다음과 같이 해결한다.


[make 시 에러]

xml/apr_xml.c:35:19: fatal error: expat.h: 그런 파일이나 디렉터리가 없습니다

 #include <expat.h>

           ^

compilation terminated.

make[1]: *** [xml/apr_xml.lo] 오류 1

make[1]: Leaving directory `/app/src/apr-util-1.6.0'

make: *** [all-recursive] 오류 1

 

아래처럼 expat-devel 설치후 진행

yum install expat-devel

 

 

6.2 PCRE 설치


PCRE 라이브러리는 Perl 5 같은 구문과 의미를 사용하여 정규식 패턴 일치를 구현하는 함수의 집합이다. PCRE는 자체 native API 뿐만 아니라 POSIX 정규식 API에 대응하는 래퍼 함수의 집합도 포함하고 있다. PCRE 라이브러리는 심지어 proprietary software 개발에 사용되어도 무료이다.

PCRE는 원래 Exim MTA(Exim Mail Transfer Agent의 한 종류)를 위해 만들어졌으나, 요즘에는 Apache, PHP, KDE 등을 포함한 유명한 오픈소스 프로젝트에서 사용되고 있다. PCRE는 애플사의 사파리와 같은 몇몇의 잘 알려진 사용 제품에서 그 방법을 찾기도 했다.

PCRE를 사용하는 다른 프로젝트는 다음과 같다.

Chicken, Ferite, Onyx ...

Perl 5의 사용법(또는 문법)과 유사하게 만들어 졌고, 자제 API도 있고, POSIX와의 호환성도 좋고, 심지어 소유권을 주장할 수 있는 소프트웨어 개발에도 무료로 사용할 수 있고, 원래는 메일 전송 에이전트 용으로 만들었는데 장안의 화제가 되어 주옥같은 오프 소스 프로젝트에서 두루두루 사용되고 있으며, 애플사의 사파리와 같이 엄청 유명한 상용 제품에도 사용되고 있다고 한다

 

** PCRE (Perl Compatible Regular Expressions) - Perl 호환 정규 표현식들



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

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

 

# make && make install

 


 

6.3 아파치 설치


** 아파치(httpd)



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

# ./configure --prefix=/usr/local/apache2 --enable-modules=most --enable-mods-shared=all --enable-so --with-apr=/usr/local/src/apr-1.6.3 --with-apr-util=/usr/local/src/apr-util-1.6.1

 

# make &&  make install

 

 


7. 설정



vi /usr/local/apache2/conf/httpd.conf



 

보기 편하게 :set nu로 줄표시 한다.


** 205번째 줄 변경

ServerName 127.0.0.1:80





8. 시작

/usr/local/apache2/bin/httpd -k start

 

** 동작포트 확인

netstat -tulpn | grep LISTEN


 

9. 방화벽 open

firewall-cmd --permanent --zone=public --add-port=80/tcp

firewall-cmd --reload

firewall-cmd --list-ports

 

 

10. 서비스 확인

http://ip주소

 


11. 아파치 중지/실행 테스트

/usr/local/apache2/bin/apachectl stop

/usr/local/apache2/bin/apachectl start

 


12. 자동실행 설정


** 설정파일 복사

cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

vi /etc/init.d/httpd


** 주석추가

# Comments to support chkconfig on CentOS

# chkconfig: 2345 90 90

# description: A very fast and reliable WebServer engine.

 

** 확인

service httpd start

service httpd stop

 

** 자동시작 설정

chkconfig httpd on




※ 참고

위의 번거로운 작업 없이도 yum install을 사용하여 바로 설치할 수도 있다.


▶ 1. 설치 명령어


#yum install httpd



▶ 2. 설치 위치 확인


#which httpd




▶ 3. 버전확인 


#/usr/sbin/httpd -v



▶ 4. 아파치 주요 디렉토리 


/etc/httpd/

 - 아파치 디렉토리


/etc/httpd/conf

 - httpd.conf : Apache 설정 파일

ex) 설정파일 위치 : /etc/httpd/conf/httpd.conf

 - magic : MIME 형식을 지정하기 위한 파일


/etc/httpd/conf.d

 - Apache 설정을 분리해서 저장하는 디렉토리

 - httpd.conf 설정 내용을 이 디렉토리에 저장하면 httpd.conf 파일이 현 디렉토리 내용을 불러와서 사용

 - httpd.conf 마지막에 IncludeOptional conf.d/*.conf 구문이 존재


/etc/httpd/log/

 - 로그 파일이 저장되는 디렉토리

ex) 로그파일 위치 : /var/log/httpd/access_log


/etc/httpd/modules

 - Apache 모듈 설치 디렉토리



▶ 4. 아파치 주요 명령어


 명령

centos 7 

centos 6 

상태 확인

 systemctl status httpd

service httpd status 

시작 

systemctl start httpd 

service httpd start 

정지

systemctl stop httpd 

service httpd stop 

재시작 

systemctl restart httpd 

service httpd restart 

리로드

systemctl reload httpd 

service httpd relod 

 자동시작설정

 systemctl enable httpd

 chkconfig httpd on

 자동시작해제

 systemctl disable httpd

 chkconfig httpd off

 자동시작 확인

 systemctl is-enable httpd

 chkconfig httpd


끝 :-)

반응형

댓글0