[리눅스 서버 구축하기] 4. 아파치 설치 및 설정

[리눅스 서버 구축하기] 4. 아파치 설치 및 설정

소스파일을 이용한 컴파일 설치

1) 설치에 필요한 패키지의 설치

리눅스 상에서 소스파일 다운로드하고, 컴파일을 위하여 필요한 패키지를 설치합니다.

yum -y install wget gcc gcc-c++ pcre-devel openssl-devel

 

2) 설치파일 다운로드 및 압축해제

# apache 소스 파일 다운로드 및 압축해제

cd /usr/local/src

wget http://mirror.apache-kr.org/httpd/httpd-2.4.18.tar.gz

tar xzvf httpd-2.4.18.tar.gz

# 설치 시 필요한 파일 추가 다운로드 및 압축해제

cd httpd-2.4.18/srclib

wget http://mirror.apache-kr.org//apr/apr-1.5.2.tar.gz

wget http://mirror.apache-kr.org//apr/apr-util-1.5.4.tar.gz

tar xvfz apr-1.5.2.tar.gz

tar xvfz apr-util-1.5.4.tar.gz

mv apr-1.5.2 apr

mv apr-util-1.5.4 apr-util

웹 서버 구축을 위한 apache 소스파일을 이용하기 위해서는 http://httpd.apache.org/download.cgi 사이트를 참고하여 httpd 2.4 최신버전을 다운로드 받습니다. 이 글에서는 리눅스에서 직접 설치를 위해 wget 명령어를 이용하였습니다.

13) apache 소스 컴파일 및 설치

Apache 설치에 필요한 환경이 모두 준비되었으면 configure 명령어를 통해 설치 파일을 구성합니다.

# configure command

./configure –prefix=/usr/local/apache –enable-so –enable-rewrite –enable-ssl –enable-mods-shared=all –enable-modules=shared –enable-mpms-shared=all –with-included-apr –enable-unique-id

2

컴파일이 정상적으로 완료되면 make 명령어를 통해 컴파일 및 설치를 진행합니다.

3

4) 설치 후 설정

설치가 완료되면 서비스 스크립트를 /etc/init.d/ 위치에 복사하여 사용가능 하도록 처리 후

재부팅 시에도 웹 서버가 자동으로 구동될 수 있도록 runlevel에 등록해줍니다.

# httpd 스크립트 복사 및 서비스 runlevel 등재

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

ln -s /etc/init.d/httpd /etc/rc3.d/S99httpd

/etc/init.d/httpd -V

4

아래와 같이 간단한 명령어를 통해 정상 등재되었는지 확인합니다.

5

5) 서비스 확인

/etc/init.d/httpd start

http 스크립트 명령어를 통해 웹서비스를 시작한 후 정상적으로 80 port가 Listen되는지 확인합니다.

6

 

rpm 설치

1) httpd 패키지 설치

CentOS에서는 RHEL계열에서 처리되는 rpm 방식으로 설치가 가능합니다. 일반적으로 아래 이미지와 같이 yum 명령어를 통해 관련 패키지 및 의존성 패키지를 한 번에 설치할 수 있습니다.

7

httpd패키지 설치를 yum으로 진행 시 httpd와 그 의존성 패키지인 apr, apr-util 를 설치합니다.

8정상적으로 설치가 완료된 화면입니다.

2) 설치 후 확인 사항

설치 완료 후 정상적으로 httpd 가 설치되었는지 점검합니다.

9rpm으로 설치 시 관련 명령어의 path 등 기본 환경 설정이 적용됩니다. systemctl enble httpd.service 명령어를 통해 httpd 서비스를 구동한 후 80포트가 정상적으로 Listen 상태인지 확인합니다.

10

– 웹서비스 확인

1) apache 설정파일 확인

Apache에 설정된 파일을 확인하여 DocumentRoot와 DirectoryIndex를 확인한다. 별도의 수정이 없었다면 결과는 다음과 같습니다.

DocumentRoot “/var/www/html”

DirectoryIndex index.html

 

2) 테스트 페이지 확인

설정파일에 기재된 내용을 참고하여 해당 위치 해당 파일명으로 테스트할 페이지를 생성합니다.

echo ‘Gabia Test Page ! ! !’ > /var/www/html/index.html

11

3) 방화벽 확인

CentOS를 기본 설치할 경우 외부에서의 80포트 접근이 차단되어있습니다.

아래와 같은 명령어를 이용하여 현재 정책이 존재하는 port를 확인할 수 있습니다.

firewall-cmd –zone=public –list-all

Ports 란이 공란으로 되어있으며 tcp 80포트가 정상적으로 접근되지 않음을 알 수 있습니다.

12

위와 같은 명령어를 통해 80port로의 모든 접근이 가능하도록 정책을 넣은 후 방화벽을 relaod합니다.

# 80 port any open

firewall-cmd –permanent –zone=public –add-port=80/tcp

# 방화벽 리로드

firewall-cmd –reload

정상적으로 허용이 되었는지 확인은 아래 명령어로 확인할 수 있습니다.

# 방화벽 public 영역 모든 리스트 확인

firewall-cmd –zone=public –list-all | grep 80

4) 브라우저 테스트

http://192.168.0.10/ 페이지가 정상적으로 출력되는지 서버 외부의 클라이언트에서 일반 웹 브라우저로 호출해봅니다.

13

 

비트디펜더 33% 할인!

댓글 남기기

6 comments on "[리눅스 서버 구축하기] 4. 아파치 설치 및 설정"

알리기:
avatar
정렬:   최신순 | 오래된순 | 추천순
Kevin Kim
Guest
Kevin Kim

정리잘 해 놓으셨네요. Centos7 64bit으로 setup하고 있는데, 차근차근 잘 따라서 만들어 갈 수 있네요.
감사합니다.

luecel
Guest

echo ‘test page’ > /var/www/html/index.html 이런식으로 하고 엔터치면 계속 밑에 > 만 생겨나고 끝낼 수가 없습니다..ㅜㅜ 이거 대체 저장 어떻게 하나요?

luecel
Guest

어라; 다시 첨부터 해봤더니 됩니다. 왠지 모르겠네요.. ‘ ‘안에 들어간 구문을 바꿔서 그런것 같네요

luecel
Guest

여기나온대로 다 따라해서 끝냈습니다! (전 버전 2.4.25를 깔았어요)
단하나, /etc/init.d/httpd -V 이부분만 기재해놓으신 내용이랑 제가했을때랑 다르게 나와서,
vi /etc/init.d/httpd 에 내용을 몇개 추가하여
chkconfig –add httpd한 뒤에, chkconfig –list로 확인했습니다.
그런데 그 후에 테스트페이지까지 다 확인하고 , vm을 껐다가 나중에 다시 켰더니 chkconfig –list를 해보면 httpd에 관련된 내용이 사라져있습니다..
이게 왜 사라진걸까요..? chkconfig –add httpd를 해도 이전처럼 추가도 안됩니다.
사라져도 상관 없는건가요..? 그래도 vm을 켜면 자동으로 서버가 켜지도록 된건가요?
이것때문에 설치 처음부터 다시했는데도 또 그러네요. 알려주시면 정말 감사드리겠습니다..

Pintor
Guest

따라하니 금방 테스트페이지까지 나오네요. 감사합니다. ^^

Pintor
Guest

luecel님 말대로 서비스등록하는 부분에서 안되서 ,,
> vi /etc/init.d/httpd
#!/bin/sh
–이부분추가–
# chkconfig: 2345 90 90
# description: init file for Apache server daemon
# processname: /usr/local/apache2/bin/apachectl
# config: /usr/local/apache2/conf/httpd.conf
# pidfile: /usr/local/apache2/logs/httpd.pid

추가후
#chkconfig –add httpd
성공!! ㅎㅎ
다른건 다 괜찮았던거같아요.

wpDiscuz