
개요
리눅스 환경에서 아파치(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 설치에 대해서 알아보았다.
'WebServer | WAS > Apache' 카테고리의 다른 글
Apache HTTPD to Tomcat, 로드 밸런싱(Load Balancing) (0) | 2020.06.09 |
---|---|
Apache HTTPD to Tomcat , WEB/WAS 연동 (0) | 2020.06.04 |
Apache 메인 설정 파일 httpd.conf의 설정 요소 (0) | 2019.09.20 |
httpd 옵션 (0) | 2019.09.18 |
apachectl 옵션 (0) | 2019.09.18 |