[개발] 리눅스

[CentOS] Apache 소스코드로 설치하기

브랜든정 2011. 9. 26. 15:16
반응형

Apache 소스코드로 설치하기

앞서 MySQL 을 설치할때 잠깐 언급했지만, Apache 역시 CentOS 에서 yum 을 이용하면 한번에 설치가 된다. 그렇지만, 최신버전 아파치를 설치하고 싶을 경우에는 이렇게 소스코드를 직접받아서 컴파일하거나 rpm 을 받아서 설치해야 한다. 현재 나는 CentOS 혹은 리눅스를 공부하고 있는 입장이기 때문에 소스코드를 받아서 컴파일/설치를 진행한다. 



 소스코드를 컴파일해서 Apache를 설치하자.


1.Apache 소스코드를 다운로드 받자.
(2011년 9월 26일 현재, 최신버전은 2.2.21 임)
http://httpd.apache.org/download.cgi
 


해당 소스파일을 직접 다운로드 받거나, 링크주소를 복사해서 wget 으로 다운받자.


2. 소스파일 압축해제

다운로드 받은 httpd-2.2.21.tar.gz 파일의 압축을 해제한다.
# tar -zxf httpd-2.2.21.tar.gz
# cd httpd-2.2.21


3. ./configure 실행
configure 를 실행해서 Makefile 을 생성한다.

# ./configure \
> --prefix=/usr/local/server/apache \
> --enable-mods-shared=all \
> --enables-so \    -> --enable-so \
> --enables-rewrite   -> --enable-rewrite

(오타 수정했습니다. 오타 지적 감사드립니다~)

위 옵션의 의미는 다음과 같다.
--prefix=/usr/local/server/apache \
: 설치 디렉토리를 지정한다.

--enable-mods-shared=all \
: 모든 모듈을 DSO 모드로 작성한다.

--enable-so \
: DSO 모드를 활성화한다.

--enable-rewrite
: URL 재작성 모듈을 활성화 한다.

*DSO(Dynamic Shared Object) 란?
아파치의 설치 방식은 두가지가 있다. 하나는 DSO(Dynamic Shared Object) 동적모듈 적재방식이고, 하나는 Static Object 라고 하는 방식이다. DSO 방식은 아파치를 먼저 컴파일하고 다른 모듈들을 추가로 설치할 때 아파치를 다시 컴파일 하지 않고 모듈을 추가할 수 있다. Static 방식은 모듈을 추가하려면 아파치를 다시 컴파일 해야하는 번거로움이 있다.
 Static 방식은 사용하는 모듈을 모두 적재한 다음 사용자의 요청이 있으면 바로 응답하므로 실행속도가 빠르지만, 아파치가 실행될 때에 모든 모듈을 로드하므로 시스템의 자원을 많이 소모한다. 하지만 DSO 방식은 사용자의 요청이 있을 때에 모듈을 로드하므로 Static 방식보다는 느리지만, 시스템의 자원을 적게 소모한다. 최근에는 하드웨어의 발전으로 수행속도가 크게 차이 나지 않는다. 그래서 대부분 여러가지 장점이 있는 DSO 방식으로 설치한다. 
 - CentOS 리눅스 구축관리 실무 -


4. make && make install
소스코드를 컴파일하고 설치한다. 만약 컴파일러가 설치되어 있지않다면, 컴파일러를 먼저 설치해야 한다. (MySQL 설치편 참조)
# make
# make install 

정상적으로 설치가 되면 /usr/local/server/apache 파일에 파일들이 있을것이다.


5. 자동실행 설정
Apache 의 실행스크립트인 apachectl 을 /etc/init.d 에 복사한다.
# cp /usr/local/server/apache/bin/apachectl /etc/init.d/httpd


chkconfig 를 이용해서 자동실행을 등록해야 하는데, 이때 그냥 chkconfig 명령어를 사용하면 등록되지 않는다. chkconfig 를 사용하기 위새 실행스크립트 파일에 아래내용을 추가해야 한다.
# vi /etc/init.d/httpd


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

위와같이 추가를 하고 다시 chkconfig 를 사용해서 자동실행을 등록하자.
# chkconfig --add httpd

등록후
# chkconfig --list | grep httpd 

명령어로 확인해보자.


6. 환경설정
이제 기본적인 Apache 실행환경을 설정해보자.
/usr/local/server/apache/conf/httpd.conf 파일을 편집한다.

User 와 Group 지시어에 설정되어 있는 기본값인 daemon 을 nobody 로 변경한다. root 권한으로 실행된 아파치의 하위 프로세스를 이곳에서 지정한 사용자로 실행한다는 의미이다.

ServerName 항목의 주석을 해제하고, 도메인 또는 서버의 IP주소를 적어준다. 만약 이 항목을 설정하지 않으면 127.0.0.1 으로만 접속이 된다.

User nobody
Group nobody

ServerName 192.168.75.129 


이제 Apache 를 실행하여 접속해 보자.
# /etc/init.d/httpd start


웹브라우저에서 해당서버(192.168.75.129)로 접속해서 It works! 라는 페이지가 나타난다면 설치가 완료된 것이다. 만약 아파치가 정상작동하는데도 페이지가 열리지 않으면 iptables 를 이용해 방화벽의 80번 포트를 열어준다.

# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
(오타 수정했어요 ^^)

# /etc/init.d/iptables restart
또는
# service iptables restart

다시 서버에 접속해서 접속이 가능한지 확인한다.
서버에 접속이 되면 아파치설치 및 설정이 완료된 것이다.

이제 PHP 설치만 남았다.
끝!!!


 

반응형