본문 바로가기

개발 서비스/메타블로그

[메타블로그 설치기] 제2편 아파치서버 설치


제2편 아파치서버 설치

가. 프로그램 버전 : httpd-2.2.13.tar.gz

나. 선행 작업(컴파일러 설치)

]# yum install gcc
]# yum install openssl-devel
]# yum install zlib-devel
]# yum install libtool
]# yum install apr-util-devel


다. 리눅스에서 제공하는 아파치 제거

리눅스 설치시 서버패키지를 설치 하지 않았더라도 아파치가 기본적으로 설치 되는 경우가 있다. 아래와 같은 방법으로 리눅스에서 제공하는 아파치를 제거한다.
 

]# rpm -qa | grep httpd

]# rpm -e 패키지명 <-패키지를 반드시 제거한다. 
 또는
]# yum remove httpd-2.2.8-3

 

라. 소스파일 복사

아파치 파일을 다운 받을 수 있는곳
아파치 홈페이지 : http://httpd.apache.org/download.cgi
나는 2.2.12버전을 구해서 설치했으나 이글이 작성되는 시점에서 apache.org에서 2.2.13을 제공 하고 있다. 설치 시 참고 바람

▶ root권한으로 작업
아파치를 다운로드 받은 디렉토리로 이동한다.
]# cp httpd-2.2.13.tar.gz /usr/local/
]# cd /usr/local/
]# tar -xvzf httpd-2.2.13.tar.gz


마. (3단계) configure명령으로 컴파일 환경 설정.

]# cd /usr/local/httpd-2.2.13
]# ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all \
--with-mpm=worker --enable-ssl--with-ssl--enable-so
~]# make
~]# make install

바. /etc/ld.so.conf 파일 수정

]# vi /etc/ld.so.conf

 

========이부분을 추가한다.===========

/usr/local/apache2/lib

/usr/local/apache2/modules

=================================

]# ldconfig

 

사. 80포트를 열기 위한 방화벽 설정 및 SELINUX 중지

페도라의 경우 기본적으로 22번 ssh포트만을 열어 주고 나머지 포트는 사용하면서 사용자가 열어 주어야 한다. iptables의 옵션을 변경한다. 변경하면서 이후에 설치할 MySQL 포트도 같이 열어주면 편하다.

 

# vi /etc/sysconfig/iptables

 

========iptables에 아래 붉은색 소스 2줄을 추가해 준다.===========

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

# Apache WebServer port open (80port)

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

# MySQL WebServer port open (3306port)

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

========================================================

 

이렇게 풀어주고 나서도 외부에서 80포트가 열리지 않는 경우가 생기면 SELINUX를 중지해 주어야 한다.

 

아. SELINUX 중지

]# vi /etc/sysconfig/selinux

========= 아래 붉은색 소스 2줄을 편집해 준다.=========

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

#SELINUX=enforcing (이 부분 앞에 '#'를 넣어서 비활성화(주석처리)한다.)

SELINUX=disabled (다음 내용을 추가한다.)

# SELINUXTYPE= can take one of these two values:

# targeted - Targeted processes are protected,

# mls - Multi Level Security protection.

SELINUXTYPE=targeted

=============================================

 

자. 리눅스 부팅시 아파치 자동 실행(방법1)

 

1) /etc/rc.d/rc.local 에 추가.

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

]# /usr/local/apache2/bin/apachectl start

 

2) 실행파일을 /etc/init.d/ 와 /etc/rc.d/init.d 에 복사합니다. 이름은 일반적으로 httpd로 함.

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

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

 

3) 그후 다음과 같이 링크.

]# ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S89httpd (shell 모드)

]# ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S89httpd (xwin 모드)

 

차. 리눅스 부팅시 아파치 자동 실행(방법 2)

1) 서비스 등록

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

]# chkconfig --add httpd

 

2) 서비스 확인

]# chkconfig --list|grep httpd

-- httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

 

]# netstat -nlp|grep httpd

 

카. APACHE WEB SERVER 실행 명령어

]# /etc/init.d/httpd start

]# /etc/init.d/httpd stop

]# /etc/init.d/httpd restart

  

타. mod_rewrite 설치

src/modules/standard

]# /usr/local/apache2/bin/apxs -c -I/usr/include/gdbm mod_rewrite.c

]# gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm

]# /usr/local/apache2/bin/apxs -i mod_rewrite.so

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

cd /usr/local/apache2/

NUMZ HUB를 사용하기 위해서 mod_rewrite가 설치 되어 있어야 한다. apache설치시 위의 configure를 그대로 사용한다면 이미설치 되어 있을 것이다. /usr/local/apache2/modules/에 mod_rewrite.so 화일이 있으면 설치가 된 것이다. 만약 설치 되지 않았다면 아래와 같이 진행하면 된다.

]# vi /usr/local/apache2/conf/http.conf

 

============ http.conf 아래 부분에 추가할 내용 ============

LoadModule rewrite_module libexec/mod_rewrite.so

Addmodule mod_rewrite.c

===================================================

 

http.conf를 수정하고 나서 수정사항을 적용시키고 apache를 재 실행 시킨다.

]# /usr/local/apache2/apachectl configtest

]# /usr/local/apache2/apachectl restart

 


------------------------------------------------------------------------------ 

※ 설치시 팁[1] - vi에디터 사용

------------------------------------------------------------------------------

초보에게 vi에디터는 사용하기 낫선 편집기이다. 필자도 vi에디터의 대부분의 사용방법은 모르고 있다. 다만 파일을 간단하게 편집하는 방법정도만 알고 사용하고 있다. 초보자라서 vi를 전혀 모fms다면 아래 사용법만 약간 익혀두자.

 

]# vi [파일명] <-- 파일 열기

편집기에서의 명령어

- esc키를 누르면 커서가 화면 제일 하단으로 이동이다. 이때 에디터의 명령어를 입력한다.

i 또는 a <-- 편집 모드로 들어감

:w <-- 저장
:q <-- 끝내기
:wq <-- 저장하고 끝내기
:q! <-- 저장하지 않고 강제로 끝내기



------------------------------------------------------------------------------
※ 설치시 팁[2]
- 외부 프로그램의 텍스트를 콘솔창에 복사하기
------------------------------------------------------------------------------

필자의 경우 접속 콘솔을 putty를 사용한다. 여기서 윈도우에 익숙해져 있는 우리에게 익숙하지 않은 예외 상황이 발생하는데 “ctrl v”가 먹히지 않는다는 것이다. 이때 사용할 수 있는 방법은 옮겨 붙일 내용을 드래그해서 복사한 상태에서 콘솔창에 대고 오른쪽 마우스로 클릭해 주면 잘 붙는다. 단 명령어 입력 시 편집기에 따라서 엔터값이 자동으로 따라 들어가 오른쪽 클릭하는 순간 실행이 되는 경우도 있으니 주의해야 한다.



p.s. 설치하면서 궁금한 점이 있다면 biz@adconsult.co.kr로 메일을 주면 아는데까지 답변해 주겠음. 정말 아는데 까지만~ ..