본문 바로가기

Linux & Unix

CentOS 7 실무 웹서버 세팅 4편(Apache 2.4.x 컴파일 설치)

오늘은 가장 널리 이용되는 웹서버인 Apache웹서버를 컴파일 하여 설치해볼 것이다. 


* root사용자로 로그인 하여 작업을 진행한다.


#yum install openssl-devel.x86_64

mod_ssl 때문에 Open SSL패키지를 설치한다.


#cd /usr/local/src

컴파일할 아파치 소스를 다운 받을 디렉토리로 이동한다.


#wget http://ftp.kaist.ac.kr/Apache/httpd/httpd-2.4.10.tar.gz

아파치 소스를 다운로드 한다. 현재 오늘 날짜를 기준으로 Apache 2.4.10이 최신 버젼이다.


#tar xvfz httpd-2.4.10.tar.gz

압축을 해제한다.


[mpm 접속시 최대 접속자수 설정]

아파치 웹서버의 경우 MPM(Multi Processing Module)방식에는 prefork와 worker로 나뉜다.

- prefork는 독립적인 메모리를 사용하여 안정적이지만 많은 메모리를 사용하게 된다.

- worker는 고성능의 멀티코어 프로세서 기반에서 유용하고, 더 적은 메모리를 사용하기에 통신량이 많은 경우 더 유리하다.

* 젠드가드는 prefork에서만 설치된다. 뭔지 모르면 그냥 이걸로 한다.

컴파일전 환경설정에서 —with-mpm 옵션으로 설정할 수 있고, 설치방식에 따라 최대 접속자수를 지정해야 하고, 설정하지 않을경우 기본값으로 설치가 된다.


- prefork 설정시

# vi server/mpm/prefork/prefork.c (73번 라인:버젼 따라 위치는 다를수 있음)

DEFAULT_SERVER_LIMIT의 상수값을 변경해준다. 난 1024로 수정했다.



- worker 설정시

# vi server/mpm/worker/worker.c (84번 라인:버젼 따라 위치는 다를수 있음)

DEFAULT_SERVER_LIMIT의 상수값을 64정도로 수정해준다.



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

--enable-rule=SHARED_CORE  \

--enable-so  \

--enable-rewrite  \

--enable-vhost-alias  \

--enable-ssl  \

--enable-proxy  \

--enable-shared=max  \

--enable-modules=shared  \

--enable-mods-shared=all  \

--with-apr=/usr/local/apr  \

--with-charset=utf-8  \

--with-mpm=prefork \

--with-apr-util=/usr/local/apr-util

컴파일에 필요한 환경설정 이다. 나의 경우 젠드가드를 설치해야 하는 문제로 prefork로 설정해야 한다. 


#make

아파치 웹서버를 컴파일 한다.


#make install

/usr/local/apache 디렉토리에 컴파일된 아파치의 바이너리 코드를 설치한다.


#vi /usr/local/apache/conf/httpd.conf

ServerName 항목을 찾아서 주석을 해제한다.(205번 라인:아파치 버젼에 따라 다를수 있음)


slotmen_shm_module 모듈도 로드 될 수있도록 주석을 해제해준다.(137번 라인:아파치 버젼에 따라 다를수 있음)


#/usr/local/apache/bin/apachectl restart

아파치 웹서버를 구동시켜본다.


같은 네트워크에 있는 다른 컴퓨터에서 리눅스 서버의 아이피주소를 입력해본다. 만약 가상머신에 설치한 리눅스라면 메인 시스템의 웹브라우저에서 가상머신의 아이피주소를 입력해보면 된다. 

아래와 같이 나온다면 성공적인 설치가 된 것이다.


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

실행 스크립트 복사


#chmod 755 /etc/init.d/httpd

권한 부여


#vi /etc/rc.d/rc.local

rc.local에 아래 명령을 입력해주면 부팅시 자동으로 아파치 웹서버를 구동할 것이다.

/usr/local/apache/bin/apachectl start 

실무 웹서버에서는 웹서버 1대에서 여러개의 웹사이트를 운영해야 하는 경우가 많다. 그럴때는 아파치의 버추얼 호스트라는 것을 이용해야 하는데 크게 어려운 것이 아니므로 검색해보면 충분히 알수 있을 것이다.

시간이 되면 나중에 다뤄보겠다.


다음번에는 PHP(Professional HTML Preprocessor)을 연동할 것이다.