Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 8d89273e47
Fetching contributors…

Cannot retrieve contributors at this time

386 lines (325 sloc) 20.081 kb
<?xml version="1.0" encoding="EUC-KR"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head><!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>컴파일과 설치 - Apache HTTP Server</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
<script src="./style/scripts/prettify.js" type="text/javascript">
</script>
<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">모듈</a> | <a href="./mod/directives.html">지시어들</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">용어</a> | <a href="./sitemap.html">사이트맵</a></p>
<p class="apache">Apache HTTP Server Version 2.5</p>
<img alt="" src="./images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>컴파일과 설치</h1>
<div class="toplang">
<p><span>가능한 언어: </span><a href="./de/install.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
<a href="./en/install.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/install.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
<a href="./fr/install.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/install.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/install.html" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/install.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div>
<div class="outofdate">이 문서는 최신판 번역이 아닙니다.
최근에 변경된 내용은 영어 문서를 참고하세요.</div>
<p>이 문서는 유닉스와 유닉스류 시스템에서 아파치를 컴파일하고
설치하는 것만을 다룬다. 윈도우즈에서 컴파일하고 설치하는 방법은
<a href="platform/windows.html">마이크로소프트 윈도우즈에서
아파치 사용</a>을 참고하라. 다른 플래폼에 대해서는 <a href="platform/">플래폼</a> 문서를 참고하라.</p>
<p>아파치 2.0의 구성과 설치 환경은 1.3과 매우 다르다.
아파치 1.3은 쉬운 설치를 위해 자체 스크립트를 사용했다.
아파치 2.0은 이제 다른 여러 오픈소스 프로젝트와 비슷한 환경을
만들기위해 <code>libtool</code>과 <code>autoconf</code>를
사용한다.</p>
<p>만약 작은 버전을 한단계 업그레이드한다면 (예를 들어,
2.0.50에서 2.0.51), <a href="#upgrading">업그레이드</a>
장으로 바로 가길 바란다.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#overview">성미 급한 사람을 위한 개요</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#requirements">요구사항</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#download">다운로드</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#extract">압축 풀기</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#configure">소스 트리 구성하기</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#compile">컴파일</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#install">설치</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#customize">설정</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#test">검사</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#upgrading">업그레이드</a></li>
</ul><h3>참고</h3><ul class="seealso"><li><a href="programs/configure.html">소스 트리 구성</a></li><li><a href="invoking.html">아파치 시작</a></li><li><a href="stopping.html">아파치 중단과 재시작</a></li></ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="overview" id="overview">성미 급한 사람을 위한 개요</a></h2>
<table>
<tr>
<td><a href="#download">다운로드</a></td>
<td><code>$ lynx http://httpd.apache.org/download.cgi</code>
</td>
</tr>
<tr>
<td><a href="#extract">압축 풀기</a></td>
<td><code>$ gzip -d httpd-2_1_<em>NN</em>.tar.gz<br />
$ tar xvf httpd-2_1_<em>NN</em>.tar</code> </td>
</tr>
<tr>
<td><a href="#configure">구성</a></td>
<td><code>$ ./configure --prefix=<em>PREFIX</em></code>
</td>
</tr>
<tr>
<td><a href="#compile">컴파일</a></td>
<td><code>$ make</code> </td>
</tr>
<tr>
<td><a href="#install">설치</a></td>
<td><code>$ make install</code> </td>
</tr>
<tr>
<td><a href="#customize">설정</a></td>
<td><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code> </td>
</tr>
<tr>
<td><a href="#test">검사</a></td>
<td><code>$ <em>PREFIX</em>/bin/apachectl start</code>
</td>
</tr>
</table>
<p><em>NN</em>은 현재 작은 버전 숫자로, <em>PREFIX</em>는
서버가 설치될 파일시스템 경로로 대체해야 한다. <em>PREFIX</em>를
지정하지 않으면 기본값으로 <code>/usr/local/apache2</code>를
사용한다.</p>
<p>아래는 아파치 웹서버를 컴파일하고 설치하기위한 요구사항부터
컴파일과 설치 과정을 각각 자세히 설명한다.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="requirements" id="requirements">요구사항</a></h2>
<p>아파치를 컴파일하기위해 다음과 같은 것들이 필요하다:</p>
<dl>
<dt>디스크 공간</dt>
<dd>디스크 여유공간이 최소 50 MB 이상인지 확인하라.
설치후 아파치는 약 10 MB의 디스크 공간을 차지한다.
실제 필요한 디스크 공간은 선택한 구성 옵션과 추가 모듈에
따라 상당히 차이가 난다.</dd>
<dt>ANSI-C 컴파일러와 컴파일 시스템</dt>
<dd>ANSI-C 컴파일러가 설치되있는지 확인하라. <a href="http://www.gnu.org/">Free Software Foundation (FSF)</a>의
<a href="http://www.gnu.org/software/gcc/gcc.html">GNU C
compiler (GCC)</a>를 추천한다. (버전 2.7.2면 된다.) GCC가
없다면 최소한 사용하는 컴파일러가 ANSI 호환인지 확인하라.
추가로 <code>PATH</code> 환경변수는 <code>make</code>와
같은 기본적인 컴파일 도구를 포함해야 한다.</dd>
<dt>정확한 시간</dt>
<dd>HTTP 프로토콜에는 하루중 시간을 표현하는 부분이 있다. 그래서
이제 시스템의 시간 동기화 기능을 살펴볼 시간이다. 보통
이를 위해 Network Time Protocol (NTP)에 기반한
<code>ntpdate</code>나 <code>xntpd</code>를 사용한다.
NTP 소프트웨어와 공개 시간 서버에 대한 정보는 뉴스그룹
<a href="news:comp.protocols.time.ntp">comp.protocols.time.ntp</a>와
<a href="http://www.ntp.org">NTP 홈페이지</a>를
참고하라.</dd>
<dt><a href="http://www.perl.org/">Perl 5</a>
[선택사항]</dt>
<dd>(Perl로 쓰여진) <a href="programs/apxs.html">apxs</a>나
<a href="programs/dbmmanage.html">dbmmanage</a>와 같은
지원 스크립트를 위해 Perl 5 인터프리터가 필요하다. (버전
5.003 이상이면 된다.) `<code>configure</code>' 스크립트가
이 인터프리터를 찾지 못해도 문제없이 아파치 2.0을
컴파일하고 설치할 수 있다. 다만 지원 스크립트를 사용하지
못할 뿐이다. 여러 Perl 인터프리터가 설치되있다면 (아마도
살때 포함된 Perl 4와 직접 컴파일한 Perl 5)
<code>./configure</code>가 올바른 것을 찾기위해
<code>--with-perl</code> 옵션을 (아래 참고) 사용하길 바란다.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="download" id="download">다운로드</a></h2>
<p>아파치는 여러 미러 목록이 있는 <a href="http://httpd.apache.org/download.cgi">아파치 웹서버
다운로드 사이트</a>에서 다운로드할 수 있다. 유닉스류 시스템을
사용한다면 소스코드를 다운받아서 컴파일하는 편이 낫다. 쉽게
(아래에서 설명) 컴파일할 수 있고, 자신의 용도에 알맞게 서버를
맞출 수 있다. 또, 최신 버전 바이너리 배포본이 없는 경우도
많다. 바이너리를 다운받는다면 배포본에 있는
<code>INSTALL.bindist</code> 파일의 지시를 따르라.</p>
<p>다운로드후 다운받은 파일이 완전하고
변경되지않은 아파치 웹서버임을 확인하는 것이 중요하다.
PGP 서명을 가지고 다운로드한 타볼(tarball)을 검사하여 확인한다.
자세한 방법은 <a href="http://httpd.apache.org/download.cgi#verify">다운로드
페이지</a>에 있고, <a href="http://httpd.apache.org/dev/verification.html">PGP
사용법</a>을 설명하는 상세한 예도 있다.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="extract" id="extract">압축 풀기</a></h2>
<p>아파치 웹서버 타볼에서 소스를 푸는 작업은 단순히 압축과
tar를 푸는 것이다:</p>
<div class="example"><p><code>
$ gzip -d httpd-2_1_<em>NN</em>.tar.gz<br />
$ tar xvf httpd-2_1_<em>NN</em>.tar
</code></p></div>
<p>그러면 현재 디렉토리 아래에 배포본의 소스코드를 담은
새로운 디렉토리가 생긴다. 서버를 컴파일하기 전에 그
디렉토리로 <code>cd</code>해야 한다.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="configure" id="configure">소스 트리 구성하기</a></h2>
<p>다음 과정은 특정 플래폼과 개인적인 필요에 따라 아파치
소스 트리를 구성하는 일이다. 이를 위해 배포본의 최상위 디렉토리에
있는 <code><a href="programs/configure.html">configure</a></code>
스크립트를 사용한다. (아파치
소스 트리의 CVS 버전을 다운로드한 개발자는 이미
<code>autoconf</code>와 <code>libtool</code>가 설치되있고,
다음 과정으로 넘어가기 전에 <code>buildconf</code>를 실행해야
한다. 이는 정식 버전에서는 필요없다.)</p>
<p>모두 기본 옵션을 사용하여 소스 트리를 구성하려면 간단히
<code>./configure</code>를 입력하면된다. 기본 옵션을 수정하려면
<code>./configure</code>에 여러 변수와 명령행 옵션을 사용한다.</p>
<p>가장 중요한 옵션은 아파치가 정상적으로 작동하기위해 아파치를
구성하고 설치할 장소인 <code>--prefix</code>다. 다른 <a href="programs/configure.html#installationdirectories">configure
옵션들</a>을 사용하여 파일의 위치를 더 자세히 설정할 수도
있다.</p>
<p><a href="mod/">모듈</a>을 포함하거나 빼서 아파치에 포함할
<a href="programs/configure.html#optionalfeatures">기능</a>을
선택한다. <a href="mod/module-dict.html#Status">Base</a>
상태인 모듈은 기본적으로 아파치에 포함된다. 다른 상태의
모듈은 <code>--enable-<var>module</var></code> 옵션을 사용하여
포함한다. 여기서 <em>module</em>은 모듈 이름에서
<code>mod_</code>를 빼고 밑줄을 빼기기호로 변경한 결과다.
<code>--enable-<var>module</var>=shared</code> 옵션을 사용하면
모듈을 실행중에 포함하거나 뺄 수 있는 <a href="dso.html">공유객체(shared object, DSO)</a>로 컴파일한다.
또, <code>--disable-<var>module</var></code> 옵션을 사용하여
Base 모듈을 뺄 수 있다. 지정한 모듈이 없어도
<code>configure</code>가 경고하지않고 그냥 무시하기때문에
모듈 이름을 정확히 입력하라.</p>
<p>가끔 <code>configure</code> 스크립트에게 컴파일러,
라이브러리, 헤더파일 등의 위치를 알려줘야 할 경우가 있다.
이 정보는 환경변수나 <code>configure</code>의 명령행 옵션을
사용하여 전달한다. 자세한 내용은 <a href="programs/configure.html">configure manpage</a>를
참고하라.</p>
<p>여러분이 선택할 수 있는 가능성을 보여주기위해 다음은
특정 컴파일러와 플래그를 사용하고 나중에 DSO로 읽어들일
두 모듈 <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code>와
<code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code>을 추가하여
<code>/sw/pkg/apache</code>에 설치할 아파치를 컴파일하는
전형적인 예이다:</p>
<div class="example"><p><code>
$ CC="pgcc" CFLAGS="-O2" \<br />
./configure --prefix=/sw/pkg/apache \<br />
--enable-rewrite=shared \<br />
--enable-speling=shared
</code></p></div>
<p><code>configure</code>를 실행하면 몇분간 시스템의 기능을
검사하여 나중에 서버를 컴파일할때 사용할 Makefile들을
만든다.</p>
<p><code>configure</code> 옵션들에 대한 자세한 설명은 <a href="programs/configure.html">configure manpage</a>에 있다.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="compile" id="compile">컴파일</a></h2>
<p>이제 다음 명령어 하나로 아파치의 여러 부분을 컴파일할
수 있다:</p>
<div class="example"><p><code>$ make</code></p></div>
<p>여기서 좀 기다려라. 펜티엄 III/리눅스 2.2 시스템에서
기본 구성을 컴파일하는데 약 3분 정도 걸린다. 이 시간은
하드웨어와 포함한 모듈수에 따라 크게 변한다.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="install" id="install">설치</a></h2>
<p>이제 다음 명령어로 패키지를 (위의 <code>--prefix</code>
옵션 참고) 지정한 설치 위치 <em>PREFIX</em>에 설치한다:</p>
<div class="example"><p><code>$ make install</code></p></div>
<p>업그레이드한다면 이 설치 과정이 기존 설정파일이나 문서를
덮어쓰지 않는다.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="customize" id="customize">설정</a></h2>
<p>다음으로 <code><em>PREFIX</em>/conf/</code>에 있는
<a href="configuring.html">설정파일</a>을 편집하여 아파치
웹서버를 설정한다.</p>
<div class="example"><p><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code></p></div>
<p>사용가능한 <a href="mod/directives.html">설정 지시어</a>에
대한 완전한 설명과 이 문서의 가장 최근 판은 <a href="./">docs/manual/</a>이나 <a href="http://httpd.apache.org/docs/trunk/">http://httpd.apache.org/docs/trunk/</a>에 있는 아파치 설명서를
참고하라.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="test" id="test">검사</a></h2>
<p>이제 다음과 같이 아파치 웹서버를 <a href="invoking.html">시작</a>할 수 있다:</p>
<div class="example"><p><code>$ <em>PREFIX</em>/bin/apachectl start</code></p></div>
<p>그리고 URL <code>http://localhost/</code>로 첫 문서를
요청한다. 보게될 웹페이지는 아마도
<code><em>PREFIX</em>/htdocs/</code>일 <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> 아래에 있다. 그리고
다음 명령어로 다시 서버를 <a href="stopping.html">중단</a>한다:</p>
<div class="example"><p><code>$ <em>PREFIX</em>/bin/apachectl stop</code></p></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="upgrading" id="upgrading">업그레이드</a></h2>
<p>업그레이드한다면 먼저 사이트에 영향을 줄 수 있는 변화가
있는지 알아보기위해 발표문과 소스 배포본의 <code>CHANGES</code>
파일을 읽는다. (예를 들어, 1.3에서 2.0이나 2.0에서 2.2와
같은) 큰 버전이 변한 경우 컴파일 옵션과 설정을 직접 수정해야할
정도의 큰 변화가 있을 것이다. 모든 모듈도 모듈 API의 변화에
알맞게 업그레이드해야 한다.</p>
<p>작은 버전을 한단계 업그레이드하는 것은 (예를 들어,
2.0.55에서 2.0.57) 쉽다. <code>make install</code> 작업은
기존의 문서, 로그파일, 설정파일을 수정하지 않는다. 또,
개발자는 작은 버전간에 <code>configure</code> 옵션, 설정,
모듈 API의 호환성없는 변화를 최대한 막는다. 대부분의 경우
동일한 <code>configure</code> 명령행, 동일한 설정파일을
사용할 수 있고, 모듈들도 모두 계속 동작할 것이다. (이 말은
2.0.41이후 버전에만 해당한다. 이전 버전들에는 호환성없는
변화가 있다.)</p>
<p>이전에 설치했던 소스를 가지고 있다면, 업그레이드가 더
쉬워진다. 이전 소스 최상위에 있는 <code>config.nice</code>
파일에는 소스를 구성할 때 사용했던 <code>configure</code>
명령행 옵션이 그대로 있다. 그래서 다음 버전으로 업그레이드한다면
새로운 버전 소스로 <code>config.nice</code> 파일을 복사하고,
원한다면 조금 수정을 한 후, 다음과 같이 실행한다:</p>
<div class="example"><p><code>
$ ./config.nice<br />
$ make<br />
$ make install<br />
$ <em>PREFIX</em>/bin/apachectl stop<br />
$ <em>PREFIX</em>/bin/apachectl start<br />
</code></p></div>
<div class="warning">새로운 버전을 사용하기 전에 항상 검사해봐야
한다. 예를 들어, 업그레이드를 마치기 전에 호환성 문제가
있는지 알아보기위해 다른 <code>--prefix</code>와 (<code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code> 지시어로) 다른 포트를
사용하여 새로운 버전을 설치한후 이전 버전과 같이 실행해볼
수 있다.</div>
</div></div>
<div class="bottomlang">
<p><span>가능한 언어: </span><a href="./de/install.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
<a href="./en/install.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/install.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
<a href="./fr/install.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/install.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/install.html" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/install.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/trunk/install.html';
(function(w, d) {
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
d.write('<div id="comments_thread"><\/div>');
var s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
}
else {
d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
}
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2012 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="./mod/">모듈</a> | <a href="./mod/directives.html">지시어들</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">용어</a> | <a href="./sitemap.html">사이트맵</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
//--><!]]></script>
</body></html>
Jump to Line
Something went wrong with that request. Please try again.