강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

아파치 설치 및 운영 1

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.giftitle01.gif

아파치는 현재 전세계의 웹서버중 반이상을 차지할 정도로 인기가 좋으며, 그만큼 기능도 인증을 받고 있다고 할 수 있는 대표적인 웹서버입니다.

얼마전 모 신문사에서 국내의 대표적인 ISP들의 웹서버장비로 사용되고 있는 운영체제와 웹서버를 조사한 결과를 보면 솔라리스(Solaris)에 아파치(Apache)웹서버를 설치하여 사용하는 것이 가장많은 것조사되어 기사화된 적이 있습니다.

아파치는 UNIX용이 표준이나 현재는 윈도우용도 나와있어 거의 모든 플랫폼(운영체제 및 장비)에서 아파치를 설치하여 운용할 수 있는 것으로 잘 알려져 있다.

 

아래의 자료는 Netcraft라는 곳에서 전세계 웹서버운용자들을 대상으로 조사한 것으로 대표적인 웹서버의 사용율을 잘 나타내주고 있다.

아래의 자료에서 아파치웹서버의 사용율을 확인해 보기 바란다.

 

 

 Survey01.gif

 출처 Netcraft(www.netcraft.com)

 

topservers.gif

 출처 Netcraft(www.netcraft.com)

 

 이제 아파치를 운용하기위해서 필요한 것이 어떤 것들이 있나를 알아보도록 하겠습니다.

아파치를 운용하기 위해서는 다음과 같은 작업들을 하셔야만 합니다.

 

  •         아파치에 대한 정보를 얻을 수 있는곳
  •         아파치를 설치하는 법
  •         아파치 업데이트 하는법
  •         서버와 아파치와의 상호 관계 이해하기
  •         가입자 생성 및 가입자별 가상서버 설정하기
  •         가입자별 홈디렉토리 셋팅하기
  •         가입자별 사용량 제한 및 체크하기
  •         가입자의 메일 셋팅하기
  •         웹로그 분석을 위한 가입자별 디렉토리 설정하기
  •         DNS 셋팅하기
  •         데이터베이스 관리자로서의 역할
  •         웹사이트 기획 및 수정하기
  •         웹서버 모니터링하기
  •         웹서버의 로그 접속통계분석하기

 

 레드햇리눅스를 풀버전으로 설치하시게되면 아파치가 자동으로 설치가 됩니다.

이렇게 자동으로 설치가 된 아파치를 간단히 살펴본 후에 삭제하는 방법에 대해서 설명드리겠습니다.
 

1. 레드햇리눅스 설치와 함께 자동으로 설치되는 아파치
 
   - 아파치 실행데몬 :    /usr/sbin/httpd   또는 /etc/rc.d/init.d/httpd
   - 아파치 실행하기 :    /usr/sbin/httpd   또는 /etc/rc.d/init.d/httpd start
   - 아파치 실행중지 :    ps로 PID확인하여 kill -9 PID 또는 /etc/rc.d/init.d/httpd stop
   - 아파치 홈디렉토리 :  /home/httpd/
   - 아파치 환경파일 :    /etc/httpd/conf/
   - 아파치 로그파일 :    /etc/log/httpd
 
   간략하게 요약한 것입니다. 대충 이정도면 이해가 잘 되리라 생각합니다.
 

2. 아파치 삭제하기


   레드햇에서 설치된 패키지들은 RPM(Redhat Package Manager)라는 것으로  (재)설치 및 업그레이드, 삭제등 즉, 패키지들의 관리를 합니다.

   이 rpm이란 명령어를 간략히 요약하면 다음과 같습니다.
 
   - 패키지 설치 :          rpm -ivh 패키지
   - 패키지 업그레이드 :    rpm -Uvh 패키지
   - 패키지 제거 :          rpm -e 패키지
   - 패키지 검증 :          rpm -V 패키지
   - 패키지 정보확인
      . rpm -qa                  <- 모든 패키지확인
      . rpm -q 패키지           <- 특정패키지확인
      . rpm -qa | grep 패키지    
      . rpm -qi 패키지
      . rpm -ql 패키지
      . rpm -qf 파일이름
 
 
3. 아파치 삭제의 실제 예


   다음은 아파치 삭제의 실제예(저의 시스템에서)를 든 것입니다.
 
   [root@www /root]# rpm -q apache-1.3.6      <- 아파치의 설치확인
   apache-1.3.6-7                                         <- 아파치가 설치되었음을 나타냄
   [root@www /root]# rpm -e apache-1.3.6-7    <- 설치된 아파치 삭제
   [root@www /root]#
   [root@www /root]# rpm -q apache-1.3.6      <- 아파치 설치 재확인
   package apache-1.3.6 is not installed <- 아파치가 설치되어 있지 않다고 나타냄.
   [root@www /root]#
 

레드햇리눅스에 설치되어 있는 아파치와 새로운 아파치를 rpm으로 설치하는 방법과 삭제하는방법에 대해서 알아보았습니다.

 


icon04.gif 리눅스에서의 기본제공하는 아파치


 

아파치는 거의 대부분의 OS에서 설치하여 운용을 할 수 있다.

UNIX뿐만아니라 LINUX, NT등에서 훌륭하게 돌아 간다.

그리고, Windows 98/95에서는 운용하기가 힘들다고 하지만 약 두달가량 필자는 Windows98과 Windows95에서 Apache를 설치하여 운용을 한 결과 어떤 플랫폼 못지않게 잘 돌아간다는 것을 확인했다.

따라서 아파치는 범용으로 쓰는 거의 대부분의 OS에서 운용할 수 있다고 할 수 있다.

그렇게 크지않는 웹사이트를 구상하고 계신다면 PC에서 아파치를 설치하여 운용을 하여도 괜찮지 않을까 생각한다.

이번 장에서 설명코자 하는 것은 레드헷리눅스에서 기본 패키지로 제공하는 아파치에 대한 내용이다.

현재 리눅스는 배포판으로 레드헷이 가장많이 사용되고 있으며 국내에서도 가장많은 사용자층을 형성하고 있는 배포판이 레드헷이므로 이의 최신버전인 레드헷6.0판을 기준으로 설명할 것이다.

물론 대부분의 UNIX에서도 여기에서 언급하는 것에 준해서 작업을 하면 될 것이다.

레드헷 리눅스를 설치하면 아파치패키지는 기본적으로 설치가 된다.

필자는 레드헷 리눅스6.0을 설치하여 운용하는데, 아파치 1.3.9가 설치되어 있었다.

이 책의 전반적인 기준이 되는 아파치버전은 1.3.9버전으로 이번장에서만 레드헷리눅스6.0에 기본 패키지로 들어있는 1.3.9에 대한 설명으로 새로 설치해서 사용하는 아파치가 아니라, 레드헷 리눅스에 패키지로 포함되어 있는 아파치의 전반적인 사용법에 대해서 설명할 것이다.

다시한번 분명히 할 것은 이 책에서 다루는 전반적인 내용은 가장 최신의 아파치에 대한 것임은 잊지 말자.

이번 장에서는 리눅스에서 기본적으로 제공하고 있는 아파치를 사용하실 분들을 위한 것이다.

리눅스에서는 RPM(Redhat Package Management)이라는 것이 있어서 리눅스의 모든 패키지를 관리해준다. 레드헷 리눅스에서 소프트웨어들은 패키지 형태로 제공하는데 이 패키지를 설치및 제거, 업데이트와 관리등을 할 수 있도록 해 주는 것이 RPM이다.

우선 아파치에 관련된 패키지를 확인해 보도록 하자.


rpmqf.gif

[그림1-3 아파치 설치확인]rpmqf

위의 예는 리눅스에서 사용하는 rpm명령어의 하나로 아파치를 설치하는 패키지가 어떤 것인지를 확인해 본 것이다.

apache-1.3.6-7이라는 결과는 아파치 버전 1.3.6을 설치한 패키지라는 것이다.

또한 이 패키지를 설치했을 때 설치되는 파일들과 그 파일들의 위치를 확인해 보려면 다음과 같은 명령어를 사용한다.




rpmql.gif

[그림1-4 아파치 설치하기]rpmql

 

결과가 너무길어서 일부는 생략했으며, 리눅스 시스템에 설치되어 있는 아파치관련 파일들의 위치를 차근차근 살펴보기 바란다.

그런 다음 설치된 아파치를 운용하는 방법에 대해서 배워보도록 하자.

 

레드헷 리눅스의 rpm 명령어

패키지설치 : rpm -ivh 패키지이름

rpm -Uvh 패키지이름

패키지제거 : rpm -e 패키지이름

패키지검증 : rpm -V 패키지이름

rpm -y 패키지이름

패키지 정보 확인 : rpm -qa

rpm -q 패키지이름

rpm -qa | grep 패키지이름

rpm -qi 패키지이름

rpm -ql 패키지이름

rpm -qf 파일이름


 

아파치 실행데몬 : /usr/sbin/httpd

/usr/sbin/httpd는 아파치의 실행파일이다.

아파치를 실행시킬 때는 다음과 같이 그냥 httpd라고 아파치데몬이 뜨게 된다.



httpdps.gif

[그림1-5 아파치 실행하기]httpdps

아파치를 구동시킨후에 정상적으로 실행이 되었는가를 확인하기 위해 아파치 프로세스를 확인한 것이다.

아파치 홈디렉토리 : /home/httpd/

아파치의 홈디렉토리는 /home/httpd이다. 여기는 아파치의 홈페이지 기본문서가 들어가는 곳이며 아래의 각 디렉토리는 다음과 같은 용도로 사용된다.



homehttpd.gif

[그림1-6 아파치 홈디렉토리]homehttpd

/home/httpd에는 3개의 디렉토리가 있다. cgi-bin에는 cgi script가 들어가는 곳이며, html에는 홈페이지 초기파일인 index.html을 포함한 홈페이지 파일들이 들어가는 곳이고, icons디렉토리에는 홈페이지에는 쓰이는 icon들이 들어가는 곳이다.

각자 확인해 보기 바란다.

 

아파치 환경파일 : /etc/httpd/conf/

/etc/httpd에는 아파치서버에 중요한 환경파일 3개가 들어있다.

access.conf와 httpd.conf 그리고 srm.conf이다.

아파치웹서버를 운용하려면 이들 환경설정파일들은 절대적으로 숙지를 해야 하는 것이며, 원래 3개의 운용파일로 운용되지만 현재는 1개의 파일(httpd.conf)로 운용될 수 있다.

이들 파일의 역할은 다음과 같다.

● httpd.conf : 아파치서버의 데몬과 홈페이지에 관련된 설정 및 정보

● access.conf : 아파치서버의 접근과 연결에 관련된 설정 및 정보

● srm.conf : 아파치서버에서 필요로하는 자원에 관한 설정 및 정보




etchttpd.gif

[그림1-7 아파치 환경파일들]etchttpd

아파치는 원래 NCSA 1.3버전을 패치하면서 만들어진 웹서버이다.

NCSA는 위에 보이는 3개의 환경파일을 사용하고 있다.

아파치 개발자들은 "3개의 환경파일로 나누어서 관리하는 것이 꼭 필요할까?" 라는 것에서 출발하여 현재의 아파치버전에서는 이 세개의 환경설정 부분을 모아서 httpd.conf에서 모두 관리하고 있다.

물론 3개로 나누어서 관리하는 것 또한 가능하다.

httpd.conf 파일에 있는 어떤 부분을 떼어서 access.conf나 srm.conf에 넣어도 결과는 동일하다.

그러나 완전히 httpd.conf하나로만 관리를 하려면 httpd.conf파일내에 있는 다음의 행을 없애버리든지 주석처리해 버리면 된다.




srmaccess.gif

[그림1-8 srm.conf와 access.conf불러오기]srmaccess

이 설정은 httpd.conf파일 내부에 있는 것으로 httpd.conf 내에서 access.conf와 srm.conf파일을 불러올 것인지 말것인지를 결정하는 것이다.

주석처리를 해 버리면 이 두 파일은 적용을 받지 못한다.

필자의 견해로는 대세의 흐름을 따라서 access.conf와 srm.conf를 완전히 삭제하고 httpd.conf 하나로만 관리하는 것이 효율적이라고 생각한다.

이들 파일에 대한 자세한 설정과 설정효과에 대해서는 "2-5. httpd.conf 파일수정"편에서 자세히 설명할 것이다.

 

아파치 로그파일 : /var/log/httpd

리눅스 서버에서 발생하는 거의 대부분의 로그에 관한 정보를 기록하는 디렉토리는 /var/log이다. ("15-11장. 시스템 로그파일 이해하기"편 참조)

이 디렉토리에는 리눅스에서 생성되는 모든 로그에 관한 파일들이 존재하며 이중 아파치에 관련된 로그는 /var/log/httpd에 존재한다.

이 디렉토리에는 두가지 종류의 파일이 존재한다.

하나는 access_log파일이고 하나는 error_log이다. access_log는 웹사이트로 접속이 되었을 때 접근한 사용자의 정보와 언제, 어떤페이지에 접속했는가에 대한 정보등이 기록되는 파일이며 특히 이 파일은 웹사이트의 접속통계분석의 소스가 되는 파일로 웹사이트를 관리함에 있어서 정책적인 결정을 하게 해주는 매주 중요한 파일이다.


logsfile.gif

[그림1-9 아파치 로그파일]logsfile

즉 access_log는 홈페이지를 방문한 로그가 저장되어 웹로그 통계분석에 쓰이는 로그파일이다.

또한 error_log는 웹사이트에 정상적으로 접근하지 못했을 때 이에대한 정보가 기록되는 파일로서 특히 CGI에러의 원인분석등에 유용하게 쓰이는 파일이다.

즉 error_log에는 홈페이지 방문에 실패했을 때 이에 대한 원인등이 저장되어 홈페이지가 뜨지 않거나 에러가 났을 때 에러원인분석을 하기위해 맨 먼저 이 파일을 참조하게된다.

실제로 웹마스터나 서버관리자의 일을 해 보면 이 두파일을 매우 소중히 다뤄야 한다는 것을 알게 될 것이다.

예를 들어 수퍼마켓으로 장사를 할 때 한달 동안의 매출과 매입등을 분석하여 이익이 발생했는지 손해를 봤는지를 확인해야 하는 것처럼 웹사이트를 운영할때도 어떤 페이지에 방문자가 많았으니까 더 나은 컨텐츠와 정보로 무장을 시켜활성화를 시키며 방문이 적었던 홈페이지는 왜 방문이 적는지를 분석하여 퇴출을 시키든지 아니면 새롭게 개편을 하든지 해야 할 것이다. 이때 쓰이는 파일이 access_log라는 것이다.

또 웹사이트가 뜨질 않는데 어디에 원인이 있는지를 분석할 때는 error_log가 그 역할을 하게 된다.

 

네티즌들로부터 사랑을 받는 사이트로 가는길을 안내하는 역할을 할 수 있는 파일이 이 두 파일이라는 것을 잊지말자.

이로서 레드헷리눅스에서 기본으로 제공하는 아파치웹서버에 대해서 알아보았으며 다음장 부터는 아파치를 처음부터 설치하여 운용하는 것으로 설명을 해 나갈 것이다.

거의 대부분의 웹서버와 마찬가지로 아파치도 계속적인 업그레이드와 패치를 요한다.

따라서 리눅스에서 제공하는 아파치를 운용하는 것도 좋으나 앞으로 버전업되어 업그레이드를 해야할 때가 많으므로 아파치를 새로 설치하여 운용하는 법을 배워야 한다.


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  94 명