개요


리눅스 환경에서 아파치(Apache HTTD)를 설치하는 방법은 두가지가 있다.

 

1. yum을 사용하여 설치하는 다이렉트 설치

2. Apache 인스톨 파일을 컴파일하여 설치하는 컴파일 설치

 

본 문서에서는 2번의 컴파일 설치에 대해서 다루고자 한다.

 

설치 환경은 다음과 같다.

 

- OS : CentOS 6.7

- Apache Version : Apache 2.4.41

 

 

설치 전 준비사항


Apache 설치 파일은 아파치 재단 공식 홈페이지에서 다운로드 받을 수 있다.

 

https://httpd.apache.org/download.cgi

리눅스에 설치해야하니 tar.gz 파일을 다운받도록 한다.

 

다운로드받은 파일은 WinSCP 또는 FileZilla 와 같은 FTP 프로그램을 통해서 옮기거나 아래와 같이 wget 명령어를 사용하여 바로 받을 수 있다.

 

파일을 옮겼으니 이제는 압축을 풀어야 한다.

tar 명령어를 사용하여 압축을 풀도록 한다.

 

  • tar xvfz httpd-2.4.41.tar.gz

컴파일을 진행하기 전 추가로 진행해야 하는 작업들이 있다.

리눅스에서 yum 명령어를 사용하여 아래의 패키지들을 설치한다.

 

  • yum -y install gcc-c++
  • yum -y install zlib-devel
  • yum -y install openssl-devel
  • yum -y install expat-devel
  • yum groupinstall 'Development Tools'

 

Apache 2.4는 2.2와 달리 설치 파일에 APR이 내장되어있지 않아서 따로 APR 파일을 다운로드 받아야 한다.

https://apr.apache.org/download.cgi

 

apr, apr-util 파일을 다운로드 받아서 위와 동일한 방법으로 리눅스에 옮기고 압축을 푼다.

압축을 풀고 생성된 apr, apr-util 두 디렉토리를 Apache 설치 디렉토리의 srclib 디렉토리에 이름을 변경하여 옮겨놓도록 한다. 

 

  • tar xvfz apr-1.7.0.tar.gz
  • tar xvfz apr-util-1.6.0.tar.gz
  • mv apr-1.7.0 httpd-2.4.41/srclib/apr
  • mv apr-util-1.6.0 httpd-2.4.41/srclib/apr-util

 

여기까지 왔으면 Apache를 설치할 모든 준비가 끝났다.

 

 

컴파일 


컴파일 설치의 이점은 본인이 필요한 옵션만을 사용하여 아파치를 설치할 수 있다는 점이다.

아파치 설치 파일 디렉토리에서 다음의 명령어를 사용하여 아파치를 설치하도록 한다.

 

./configure --prefix=/home/apache --with-included-apr --with-mpm=worker --enable-so --enable-mods-shared=all  --enable-ssl

 

위의 옵션은 아파치 컴파일 설치의 가장 기초적인 옵션만을 적어놓은 것이다.

각 옵션의 뜻은 다음과 같다.

 

--prefix=/home/apache

Apache를 설치할 경로를 입력한다.

--prefix= 에 입력하는 경로에 Apache가 설치된다.

--with-included-apr srclib 디렉토리에 위치한 apr, apr-util을 사용하여 설치하겠다는 옵션이다.
--with-mpm=worker

Apache 2.4가 지원하는 스레드 동작 방식인 MPM의 종류를 지정한다.

대표적으로는 prefork, worker가 있다.

--enable-so Apache가 지원하는 동적공유객체(DSO) 기능을 사용하기 위한 옵션이다.
--enable-mods-shared=all

동적공유객체(DSO) 기능을 사용할 모듈을 지정한다.

해당 모듈들은 LoadModule 지시어로 사용하여 읽어들여야하며, most로 설정하면 대부분, all로 설정하면 모든 모듈을 지정한다.

--enable-ssl mod_ssl 이 제공하는 SSL/TLS 기능을 사용한다.

더 많은 옵션을 알기 위해서는 아파치 공식 다큐먼트를 참조하는 것이 좋다.

https://httpd.apache.org/docs/2.4/programs/configure.html

 

성공적으로 configure가 완료되었으면 다음과 같이 나올것이다.

 

 

make 명령어를 실행하여 설치를 진행하고 완료가 되었으면 make install 명령어를 실행한다.

한번에 진행하려면 make && make install 으로 실행할 수 있다.

 

오류 없이 진행되었으면 Apache가 정상적으로 설치되었을 것이다.

prefix에 지정한 경로로 이동하여 확인해보도록 하자.

 

 

 

Apache 실행


Apache를 실행해보자!

bin 디렉토리 안의 apachectl 파일을 사용하여 Apache를 실행할 수 있다.

시작은 ./apachectl start, 종료는 ./apachectl stop으로 할 수 있다.

 

Apache는 기본적으로 클라이언트와 통신하기 위해서 80번 포트를 사용한다.

로컬에서 실행중이라면 localhost, 원격 또는 vmware를 사용중이라면 해당 ip를 브라우저 창에 입력해보자.

 

 

It works! 가 표시된다면 정상적으로 Apache가 실행된 것이다!

 

만약 Apache가 정상적으로 실행되지 않았거나 접속할 수 없다면 대표적으로 세가지 이유가 있다.

 

1. root권한이 아닌 일반 사용자 권한으로 실행했다.

리눅스에서는 1024번 이하의 Well-Known 포트는 보안을 위해 root 외 사용자가 접근하는것을 금지하고있다.

개발 및 테스트 환경에서는 편의성을 위해 root 권한으로 실행하도록 하자.

 

2. 이미 80번 포트가 사용중이다.

netstat -na | grep 80 명령어를 사용하여 80번 포트가 이미 사용중인지 확인하도록 하자.

 

 

3. 로컬이 아닌 외부에서 접근하는 경우 방화벽이 설정되지 않았다.

CentOS 6 기준으로 방화벽은 iptables 명령어 또는 iptables 파일을 수정하여 변경할 수 있다.

/etc/sysconfig/iptables 파일을 열어서 아래와 같이 설정되어있는지 확인해보자.

 

방화벽 정보를 변경하였다면 iptables를 다시 시작해서 적용하자.

재시작은 service iptables restart 명령어를 사용하여 할 수 있다.

 

 

이상으로 Apache 설치에 대해서 알아보았다.

 

+ Recent posts