<?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>Microsoft Windows에서 아파치 사용법 - 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.2</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.2</a> &gt; <a href="./">Platform Specific Notes</a></div><div id="page-content"><div id="preamble"><h1>Microsoft Windows에서 아파치 사용법</h1>
<div class="toplang">
<p><span>가능한 언어: </span><a href="../en/platform/windows.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../ko/platform/windows.html" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>
<div class="outofdate">이 문서는 최신판 번역이 아닙니다.
            최근에 변경된 내용은 영어 문서를 참고하세요.</div>


    <p>이 문서는 Microsoft Windows에서 아파치 2.0을 설치, 설정,
    실행하는 방법을 설명한다. 잘못된 부분이 있거나 다른 방법으로
    도움을 주려면, <a href="http://httpd.apache.org/bug_report.html">버그 보고
    페이지</a>를 사용하길 바란다.</p>

    <p>이 문서는 아파치 바이너리 배포본을 설치한다고 가정한다.
    (아마도 개발 혹은 버그를 찾기위해) 직접 아파치를 컴파일하려면
    <a href="win_compiling.html">Microsoft Windows용 아파치
    컴파일</a>을 참고하라.</p>

    <p><strong>현재 Microsoft Windows 운영체제군의 버전 정책상
    이 문서는 다음과 같이 구분한다:</strong></p>
    <ul>
      <li><strong>Windows NT:</strong> Windows NT 커널을 기반으로
      하는 모든 Windows 버전을 의미한다. Windows NT, Windows
      2000, Windows XP, Windows .Net Server 2003을 지칭한다.</li>
      <li><strong>Windows 9x:</strong> 소비자 중심의 오래된
      Windows 버전을 뜻한다. Windows 95 (OSR2 포함), Windows
      98, Windows ME를 지칭한다.</li>
    </ul>

  </div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#req">운영체제 요구조건</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#down">Windows용 아파치 다운로드</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#inst">Windows용 아파치 설치하기</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#cust">Windows용 아파치 설정하기</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#winsvc">아파치를 Service로 실행하기</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#wincons">아파치를 콘솔 프로그램으로 실행하기</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#test">정상적으로 설치되었는지 검사하기</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="req" id="req">운영체제 요구조건</a></h2>
    

    <p>아파치 2.0을 실행하기위한 기본 Windows 플래폼은 Windows
    NT이다. 바이너리 설치프로그램은 Intel과 AMD와 같은 x86 개열
    프로세서에서만 동작한다. 아파치는 Windows 9x에서 충분히
    검사하지 않았기때문에 절대로 실제 서비스에 사용하지 않길
    바란다.
    </p>

    <p>운영체제에 설치한 TCP/IP 네트워크가 동작해야 한다. Windows
    95에서 실행한다면, Winsock 2 업그레이드를 설치해야 한다.
    Windows 95용 Winsock 2는 <a href="http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp">여기</a>에서
    다운받을 수 있다.
    </p>

    <p>Windows NT 4.0을 사용한다면 서비스팩 4의 TCP/IP 문제와
    Winsock 문제가 다음 서비스팩에서 해결되었기때문에, 서비스팩
    6을 설치하길 적극 권한다.</p>
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="down" id="down">Windows용 아파치 다운로드</a></h2>
    

    <p>아파치 웹서버 <a href="http://httpd.apache.org/download.cgi">http://httpd.apache.org/download.cgi</a>에서
    아파치 최신 버전에 대한 정보를 얻을 수 있다. 여기에는 최신
    발표판과 알파 혹은 베타 테스트버전과, 아파치 웹서버를 다운로드할
    수 있는 HTTP 미러와 FTP 미러 목록이 있다. 빠르고 안정하게
    다운받으려면 가까운 미러를 사용하길 바란다.</p>

    <p>Windows에 설치하려면 확장자가 <code>.msi</code>인 Windows용
    아파치 버전을 다운받아야 한다. 이 파일은 막바로 실행할 수
    있는 아파치를 저장한 Microsoft 설치파일이다. 따로 소스코드만
    묶어둔 <code>.zip</code> 파일이 있다. Microsoft Visual C++
    (Visual Studio)을 사용하여 직접 아파치를 컴파일할 수도 있다.</p>
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="inst" id="inst">Windows용 아파치 설치하기</a></h2>
    

    <p>설치하려면 Microsoft Installer 1.2 이상 버전이 필요하다.
    Windows 9x를 사용한다면 <a href="http://www.microsoft.com/downloads/release.asp?ReleaseID=32831">여기</a>에서
    Microsoft Installer를 2.0 버전으로 업그레이드할 수 있고,
    Windows NT 4.0과 2000을 사용한다면 <a href="http://www.microsoft.com/downloads/release.asp?ReleaseID=32832">여기</a>에서
    2.0 버전 업데이트를 구할 수 있다. Windows XP는 업데이트할
    필요가 없다.</p>

    <p>바이너리 설치파일로는 같은 컴퓨터에 서로 다른 아파치
    2.0 버전을 설치할 수 없음을 주의하라. 그러나 1.3
    버전<strong>과</strong> 2.0 버전은 같은 컴퓨터에 아무 문제없이
    설치할 수 있다. 같은 컴퓨터에 두가지 다른 2.0 버전을 설치하려면
    <a href="win_compiling.html">소스를 컴파일하여 아파치를
    설치</a>해야 한다.</p>

    <p>위에서 다운받은 아파치 <code>.msi</code> 파일을 실행한다.
    설치할때 다음과 같은 것을 물어본다:</p>

    <ol>
      <li><p><strong>네트워크 도메인 (Network Domain).</strong>
      등록된 서버의 DNS 도메인을 입력한다. 예를 들어, 서버의
      전체 DNS 이름이 <code>server.mydomain.net</code>이라면
      여기에 <code>mydomain.net</code>을 입력한다.</p></li>

      <li><p><strong>서버명 (Server Name).</strong> 서버의 전체
      DNS 이름. 위의 경우 여기에 <code>server.mydomain.net</code>을
      입력한다.</p></li>

      <li><p><strong>관리자 전자우편 주소 (Administrator's Email
      Address).</strong> 여기에 서버 관리자나 웹마스터의 전자우편
      주소를 입력한다. 기본적으로 클라이언트에게 보내는 오류문에
      이 주소를 기록한다.</p></li>

      <li><p><strong>사용자 대상 (For whom to install
      Apache)</strong> 새로 설치하는 아파치가 80번 포트에서
      요청을 기다리게 하려면 <code>for All Users, on Port 80,
      as a Service - Recommended</code> (모든 사용자, 80번 포트,
      service로 - 추천)를 선택한다. 아파치를 service로 실행한다
      (즉, 아파치는 서버에 로그인한 사람이 없어도 실행된다).
      개인적으로 테스트해보거나 이미 80번 포트를 사용하는 다른
      웹서버가 있다면 <code>only for the Current User, on Port
      8080, when started Manually</code> (현재 사용자만, 8080번
      포트, 직접 시작)를 선택한다.</p></li>

      <li><p><strong>설치 종류 (The installation type).</strong>
      모듈 개발에 필요한 소스코드와 라이브러리를 제외한 모든
      것을 설치하려면 <code>Typical</code>을 선택한다.
      <code>Custom</code>을 선택하면 설치할 내용을 지정할 수
      있다. 전체 설치시 디스크에 빈 공간이 약 13 메가바이트
      정도 필요하다. 이 수치는 웹사이트 크기를 <em>제외한</em>
      것이다.</p></li>

      <li><p><strong>설치 장소 (Where to install).</strong>
      기본 경로는 <code>C:\Program Files\Apache Group</code>이고,
      이곳에 <code>Apache2</code>라는 디렉토리를 만든다.</p></li>
    </ol>

    <p>설치할 동안 아파치는 <code>conf</code> 하위디렉토리에
    있는 파일들을 선택한 설치 디렉토리에 맞게 구성한다. 그러나
    이 디렉토리에 설정파일이 이미 있다면 그대로 둔다. 대신,
    해당 파일의 새로운 복사본에 확장자 <code>.default</code>를
    붙인다. 예를 들어, <code>conf\httpd.conf</code>가 이미 있다면
    <code>conf\httpd.conf.default</code>로 이름을 변경한다.
    설치후 <code>.default</code> 파일의 설정을 직접 살펴보고,
    필요하다면 기존 설정파일을 수정해야 한다.</p>

    <p>또, 이미 <code>htdocs\index.html</code>이라는 파일이
    있다면 그대로 둔다 (<code>index.html.default</code>라고
    복사하지도 않는다). 즉, 기존에 아파치가 설치되있더라도 안전하게
    아파치를 새로 설치할 수 있다. 물론 설치하기 전에 서버를
    중단하고, 설치후 새로운 서버를 시작해야 한다.</p>

    <p>아파치 설치후 필요하다면 <code>conf</code> 하위디렉토리에
    있는 설정파일을 수정해야 한다. 파일은 아파치를 설치한 디렉토리의
    <code>htdocs</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="cust" id="cust">Windows용 아파치 설정하기</a></h2>
    

    <p>아파치는 <code>conf</code> 하위디렉토리에 있는 파일로
    설정한다. 이 파일은 유닉스용과 같지만, Windows용 아파치
    특유의 지시어가 몇개 있다. 사용가능한 모든 지시어를 보려면
    <a href="../mod/directives.html">지시어 목록</a>을 참고하라.</p>

    <p>Windows용 아파치의 주된 차이점은:</p>
    <ul>
      <li><p>Windows용 아파치는 다중쓰레드 방식을 사용하기때문에,
      유닉스와 달리 요청마다 다른 프로세스를 사용하지 않는다.
      대신 아파치 프로세스는 항상, 부모 프로세스와 요청을 처리하는
      자식 프로세스, 2개이다. 자식 프로세스에 있는 여러 쓰레드들이
      요청들을 처리한다.
      </p>

      <p>프로세스 관리 지시어도 다르다:</p>

      <p><code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code>: 유닉스와
      같이, 자식 프로세스가 요청을 얼마만큼 처리하고 죽을지를
      조정한다. 그러나 유닉스와 달리 프로세스가 한번에 한 요청만을
      처리하지않고 한번에 모든 요청을 서비스하기때문에, 설정한다면
      매우 큰 값을 설정하길 권한다. 권장하는 기본값
      <code>MaxRequestsPerChild 0</code>을 사용하면 자식 프로세스는
      죽지않고 영원히 요청을 서비스한다.</p>

      <div class="warning"><strong>경고: 자식 프로세스는 새로
      시작할 때마다 서버설정파일을 새로 읽는다.
      <code>httpd.conf</code>를 수정했다면, 자식 프로세스가
      시작하지 않거나 예기치않은 결과가 발생할 수 있다.</strong></div>

      <p><code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code>:
      이 지시어는 새로 추가되었다. 이 지시어는 서버가 사용할
      쓰레드 개수를 지정한다. 이 값이 서버가 한번에 처리할 수
      있는 최대 연결개수이기때문에, 사이트에 접속량이 많다면
      충분히 큰 값을 설정해야 한다. 권장하는 기본값은
      <code>ThreadsPerChild 50</code>이다.</p></li>

      <li><p>파일명을 아규먼트로 받는 지시어는 유닉스 파일명이
      아닌 Windows 파일명을 사용해야 한다. 그러나 아파치 내부에서
      유닉스식 이름을 사용하기때문에 백슬래쉬가 아닌 슬래쉬를
      사용해야 한다. 드라이브 문자를 사용할 수 있다. 드라이브를
      지정하지 않으면 아파치 실행파일이 있는 드라이브를
      사용한다.</p></li>

      <li><p>Windows용 아파치는 서버를 다시 컴파일하지 않고
      실행중에 모듈을 읽어들일 수 있다. 기본값으로 아파치를
      컴파일하면 <code>\Apache2\modules</code> 디렉토리에 여러
      선택가능한 모듈을 설치한다. 이 모듈 혹은 다른 모듈을
      사용하려면 새로 생긴 <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code> 지시어를 사용한다.
      예를 들어, status 모듈을 사용한다면
      (<code>access.conf</code>에 status관련 지시어와 함께)
      아래와 같이 설정한다:</p>

      <div class="example"><p><code>
        LoadModule status_module modules/mod_status.so
      </code></p></div>

      <p><a href="../mod/mod_so.html#creating">읽어들일 수 있는
      모듈 만들기</a>에 대한 정보도 있다.</p></li>

      <li><p>아파치는 Microsoft IIS와 다른 Windows 서버가 사용하는
      ISAPI (Internet Server Application Programming Interface)
      확장을 (즉, 인터넷 서버 프로그램) 읽어들일 수도 있다.
      <a href="../mod/mod_isapi.html">더 자세한 정보가 있다</a>.
      아파치는 ISAPI 필터를 읽어들일 수 <strong>없음을</strong>
      주의하라.</p></li>

      <li><p>CGI 스크립트를 사용한다면 <code class="directive"><a href="../mod/core.html#scriptinterpretersource">ScriptInterpreterSource</a></code> 지시어를
      사용하여 아파치가 스크립트의 인터프리터를 찾는 방법을
      설정할 수 있다.</p></li>

      <li><p>Windows에서 <code>.htaccess</code>와 같은 파일명을
      다루기 힘드므로, <code class="directive"><a href="../mod/core.html#accessfilename">AccessFilename</a></code> 지시어를 사용하여
      디렉토리별 설정파일 이름을 변경하면 편하다.</p></li>

      <li><p>Windows NT라면 아파치 시작시 발생한 오류를 Windows
      이벤트 로그에 기록한다. 그래서 아파치가 보통 사용하는
      <code>error.log</code> 파일을 사용할 수 없는 경우에 대비한다.
      Windows 이벤트 로그는 Windows NT 4.0에서는 이벤트 뷰어
      프로그램으로, 최신 Windows 버전에서는 이벤트 뷰어 MMC
      스냅인에서 볼 수 있다.</p>

      <div class="note"><strong>Windows 9x에는 Windows 이벤트 로그가 없기때문에
      시작시 발생한 오류를 기록하지 않는다.</strong></div></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="winsvc" id="winsvc">아파치를 Service로 실행하기</a></h2>
    

    <p>Windows NT에서는 아파치를 service로 실행할 수 있다. Windows
    9x에는 매우 실험적인 방법으로 비슷한 기능을 지원한다.</p>

    <p>설치시 자동으로 아파치를 service로 설치할 수 있다. "모든
    사용자"를 선택하면, 아파치 service가 만들어진다. "현재
    사용자만"을 선택하더라도 설치후 직접 아파치를 service로
    등록할 수 있다. service를 설치하려면 Administrators 그룹의
    구성원이어야 한다.</p>

    <p>아파치에는 Apache Service Monitor라는 도구가 있다. 이
    도구를 사용하면 네트웍에 있는 다른 컴퓨터에 설치된 아파치
    상태도 확인하고 관리할 수 있다. monitor로 아파치 service를
    관리하려면 먼저 service를 (설치시 자동으로 혹은 직접) 설치해야
    한다.
    </p>

    <p>아파치 <code>bin</code> 하위디렉토리에서 명령행 프롬프트에
    다음과 같이 입력하면 아파치를 Windows NT service로 설치한다:</p>

    <div class="example"><p><code>
      apache -k install
    </code></p></div>

    <p>설치할 service 이름을 지정하고 싶다면 다음 명령어를 사용한다.
    컴퓨터에 아파치가 여러개 설치되있다면 이름을 다르게 주어야
    한다.</p>

    <div class="example"><p><code>
      apache -k install -n "MyServiceName"
    </code></p></div>

    <p>service가 사용할 설정파일을 직접 지정하려면 다음과 같이
    한다:</p>

    <div class="example"><p><code>
      apache -k install -n "MyServiceName" -f "c:\files\my.conf"
    </code></p></div>

    <p><code>-k install</code> 외에 다른 파라미터를 사용하지
    않으면, service 이름은 <code>Apache2</code>가 되고 설정파일은
    <code>conf\httpd.conf</code>가 된다.
    </p>

    <p>아파치 service를 제거하기 쉽다. 간단히:</p>

    <div class="example"><p><code>
      apache -k uninstall
    </code></p></div>

    <p>다음과 같이 제거할 아파치 service를 지정할 수 있다:</p>

    <div class="example"><p><code>
      apache -k uninstall -n "MyServiceName"
    </code></p></div>

    <p>보통 아파치 service 시작, 재시작, 종료는 Apache Service
    Monitor나 <code>NET START Apache2</code>, <code>NET STOP
    Apache2</code> 같은 명령어 혹은 Windows 서비스 관리창에서
    한다. 어떤 방법을 사용하든지 아파치 service를 시작하기 전에
    설정파일을 검사해봐야 한다:</p>

    <div class="example"><p><code>
      apache -n "MyServiceName" -t
    </code></p></div>

    <p>명령행 옵션으로도 아파치 service를 조정할 수 있다. 설치한
    아파치 serivce를 시작하려면:</p>

    <div class="example"><p><code>
      apache -k start
    </code></p></div>

    <p>명령행 옵션으로 아파치 service를 종료하려면:</p>

    <div class="example"><p><code>
      apache -k stop
    </code></p></div>

    <p>혹은</p>

    <div class="example"><p><code>
      apache -k shutdown
    </code></p></div>

    <p>실행중인 service를 재시작하여 설정파일을 다시 읽도록
    할 수 있다:</p>

    <div class="example"><p><code>
      apache -k restart
    </code></p></div>

    <p>기본적으로 모든 아파치 service는 시스템 사용자
    (<code>LocalSystem</code> 계정) 권한으로 실행하도록 등록된다.
    Windows 보안구조상 <code>LocalSystem</code> 계정은 파일시스템,
    named pipes, DCOM, secure RPC 등 어떤 방법을 사용하든지
    네트웍에 접근할 수 없다. 그러나 해당 컴퓨터에서는 많은 권한을
    가진다.
    </p>

    <div class="warning"><strong><code>LocalSystem</code> 계정에게
    네트웍 권한을 절대로 주지 마라! 아파치가 네트웍 자원에 접근해야
    한다면, 아래에서 설명하는 방법으로 아파치를 위한 별도의
    계정을 만들어라.</strong></div>

    <p>아파치 service를 실행하기위한 별도의 계정을 만들 수도
    있다. 특히 아파치가 네트웍 자원에 접근해야 한다면 이 방법을
    강력히 권한다.</p>

    <ol>
      <li>일반 도메인 사용자 계정을 만들고 암호를 기억하라.</li>

      <li>새로 만든 계정에 <code>서비스로 로그온</code>와
      <code>운영 체제의 일부로 활동</code> 권한을
      부여한다. Windows NT 4.0에서는 User Manager for Domains에서
      권한을 부여할 수 있고, Windows 2000과 XP에서는 아마도
      "그룹 정책"을 사용해야 한다. "로컬 보안 설정" MMC
      스냅인에서 직접 설정해줄 수도 있다.
      </li>

      <li>새로 만든 계정이 Users 그룹에 속하는지 확인한다.</li>

      <li>모든 문서와 스크립트 폴더에 (예를 들어
      <code>htdocs</code>와 <code>cgi-bin</code>) 대해 읽기 및
      실행 (RX) 권한을 부여한다.</li>

      <li>아파치 <code>logs</code> 디렉토리에 수정 (RWXD) 권한을
      부여한다.</li>

      <li><code>Apache.exe</code> 실행파일에 읽기 및 실행 (RX)
      권한을 부여한다.</li>
    </ol>

    <div class="note">아파치 service를 실행하는 사용자에게 최소한 수정 (RWXD)
    권한이 필요한 <code>logs</code> 하위디렉토리를 제외하고
    Apache2 디렉토리 전체에 읽기 및 실행 (RX) 권한을 부여하는
    것이 좋다.</div>

    <p>계정에 "로컬 로그온"과 "서비스로 로그온" 권한이 있다면,
    그 계정으로 로그온하여 계정이 스크립트를 실행하고 웹페이지를
    읽으며 콘솔창에서 아파치를 시작할 수 있는지 검사해볼 수
    있다. 여기서 문제가 없다면 아파치를 service로 실행해도 문제가
    없다.</p>

    <div class="note"><strong>Error code 2186</strong>은 아파치가 필요한
    네트웍 자원에 접근할 수 없다는 말로 service의 "로그온"
    설정을 확인하라. 또, 아파치를 실행하는 계정의 권한을
    살펴봐라.</div>

    <p>아파치를 service로 실행하면 Windows Service Control
    Manager에서 오류문을 볼 수 있다. 예를 들어, 제어판에서
    "서비스"를 사용하여 아파치를 시작하는 경우 다음과 같은 문구가
    나올 수 있다:</p>

    <div class="example"><p><code>
      Could not start the Apache2 service on \\COMPUTER <br />
      Error 1067; The process terminated unexpectedly.
    </code></p></div>

    <p>아파치 service를 시작할때 문제가 있으면 일반적인 이런
    오류가 나온다. 실제 어디가 문제인지 알려면 아파치를 콘솔
    프로그램으로 실행해보라.</p>

    <p>Windows 9x에서 아파치는 Windows NT의 service와 비슷한
    방법을 지원한다. 그러나 <strong>매우 실험적인</strong> 기능이다.
    실제 서비스에 사용할만큼 안정적이지 않고 앞으로 개선될지
    보장할 수도 없다. 위험하므로 혹시나 사용한다면 주의해서
    사용해야 한다!</p>

    <p>두가지 service의 중요한 차이점은 다음과 같다:</p>

    <ul>
      <li><p>아파치가 성공적으로 시작하면 배경에서 실행한다.
      예를 들어, 데스크탑에 바로가기를 만들어서 다음 명령을
      실행하는 경우,</p>

      <div class="example"><p><code>
        apache -n "MyServiceName" -k start
      </code></p></div>

      <p>service가 성공적으로 시작하면 콘솔창이 생겼다가 금방
      사라진다. httpd.conf 설정파일에 잘못된 내용이 있는 등
      아파치 시작시 오류가 발생하면 콘솔창을 계속 보인다. 콘솔창은
      문제의 원인을 파악하는데 도움을 주는 오류문을 보여준다.</p></li>

      <li><p>Windows 9x는 <code>NET START</code>와 <code>NET
      STOP</code> 명령어를 지원하지 않는다. 명령프롬프트에서
      <code>-k</code> 옵션을 사용하여 아파치 service를 조정해야
      한다.
      </p></li>

      <li><p>
      아파치와 Windows 9x는 네트웍 권한을 가진 특정 사용자로
      아파치를 실행하지 못한다. 사실 Windows 9x는 보안을 제공하지도
      않는다. 이것이 바로 Apache Software Foundation이 Windows
      9x 시스템을 공개 웹서버로 사용하길 권하지 않는 이유다.
      사용자가 웹 컨텐츠를 개발하고 아파치 서버 학습을 돕기위해,
      아니면 안전한 사설 네트웍에 위치할 인트라넷 서버를 위해,
      Windows 9x를 지원할 뿐이다.</p></li>

    </ul>

    <p>아파치가 콘솔 프로그램으로 동작함을 확인하였다면 Windows
    NT에서와 같은 명령어로 가상 service를 설치, 조절, 제거할
    수 있다. 또, Apache Service Monitor를 사용하여 Windows 9x
    가상 service를 관리할 수 있다.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="wincons" id="wincons">아파치를 콘솔 프로그램으로 실행하기</a></h2>
    

    <p>일반적으로 아파치를 service로 실행하길 권한다. 그러나
    명령행에서 실행하는게 편한 경우가 있다 (Windows 9x에서는
    service를 안정적으로 지원하지 않기때문에 명령행에서 아파치를
    실행하는 방법을 권한다).</p>

    <p>아파치를 콘솔 프로그램으로 실행하려면, 명령행에서 다음
    명령어를 사용한다:</p>

    <div class="example"><p><code>
      apache
    </code></p></div>

    <p>아파치는 Control-C를 눌러서 정지할 때까지 실행된다.</p>

    <p>또, <code>시작 메뉴 --&gt; 프로그램 --&gt; Apache HTTP
    Server 2.0.xx --&gt; Control Apache Server</code>에 설치된
    Start Apache in Console 바로가기로 아파치를 실행할 수 있다.
    바로가기를 실행하면 콘솔창을 열고 그 안에서 아파치를 실행한다.
    아파치를 service로 설치하지 않았다면, 아파치를 실행하는
    콘솔창에서 Control-C를 눌러 아파치를 중단할때까지 창이 떠있다.
    이 경우 서버는 몇초안에 종료한다. 그러나, 아파치를 service로
    설치하였다면 바로가기는 service를 시작한다. 아파치 service가
    이미 실행중이라면 바로가기는 아무일도 하지 않는다.</p>

    <p>다른 콘솔창을 열고 다음과 같이 입력하여 실행중인 아파치를
    종료할 수 있다:</p>

    <div class="example"><p><code>
      apache -k shutdown
    </code></p></div>

    <p>이 방법은 아파치가 현재 작업을 마치고 점잖게 종료할 수
    있기때문에 Control-C 보다 낫다.</p>

    <p>또, 아파치를 재시작할 수 있다. 이 경우 설정파일을 다시
    읽는다. 진행중인 작업을 중간에 끊지않고 완료한다. 아파치를
    재시작하려면:</p>

    <div class="example"><p><code>
      apache -k restart
    </code></p></div>

    <div class="note">유닉스용 아파치에 익숙한 사람을 위해: 이 명령어는
    <code>kill -TERM <em>pid</em></code>나 <code>kill -USR1
    <em>pid</em></code>의 Windows판이다. 명령행 옵션
    <code>-k</code>는 유닉스 <code>kill</code> 명령어 이름을
    본따 지었다.</div>

    <p>아파치 콘솔창이 즉시 혹은 시작후 갑자기 닫치면 시작 메뉴
    --&gt; 프로그램의 명령 프롬프트를 실행한다. 아파치를 설치한
    폴더로 가서 <code>apache</code> 명령어를 실행해보고 발생한
    오류문을 살펴본다. 그리고 logs 폴더로 가서, 설정파일이
    잘못되었는지 <code>error.log</code> 파일을 살펴본다. 아파치를
    설치할때 기본값을 사용했다면 다음과 같다:</p>

    <div class="example"><p><code>
      c: <br />
      cd "\Program Files\Apache Group\Apache2\bin" <br />
      apache
    </code></p></div>

    <p>아파치가 정지할 때까지 기다리거나 Control-C를 누른다.
    그리고 다음과 같이 입력한다:</p>

    <div class="example"><p><code>
      cd ..\logs <br />
      more &lt; error.log
    </code></p></div>

    <p>아파치를 다룰때 아파치가 어떻게 설정파일을 찾는지 아는
    것이 중요하다. 두가지 방법으로 명령행에서 설정파일을 지정할
    수 있다:</p>

    <ul>
      <li><p><code>-f</code>는 설정파일의 절대경로 혹은 상대경로를
      지정한다:</p>

      <div class="example"><p><code>
        apache -f "c:\my server files\anotherconfig.conf"
      </code></p></div>

      <p>혹은</p>

      <div class="example"><p><code>
        apache -f files\anotherconfig.conf
      </code></p></div></li>

      <li><p><code>-n</code>은 아파치 service를 선택하고, 해당
      service의 설정파일을 사용한다:</p>

      <div class="example"><p><code>
        apache -n "MyServiceName"
      </code></p></div>
      </li>
    </ul>

    <p>두 경우 모두 설정파일이 적절한 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>를 지정해야 한다.</p>

    <p><code>-f</code>나 <code>-n</code>으로 설정파일을 지정하지
    않으면, 아파치는 <code>conf\httpd.conf</code>와 같이 서버에
    컴파일된 파일명을 사용한다. 이 기본 경로는 설치 디렉토리에
    상대적이다. 다음과 같이 <code>-V</code> 옵션으로 아파치를
    실행하면 <code>SERVER_CONFIG_FILE</code>이란 항목에서 서버가
    사용할 설정파일을 알 수 있다:</p>

    <div class="example"><p><code>
      apache -V
    </code></p></div>

    <p>아파치는 다음 순서대로 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>를 찾는다:</p>

    <ol>
      <li><code>-C</code> 명령행 옵션에 사용한 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> 지시어.</li>

      <li><code>-d</code> 명령행 옵션.</li>

      <li>현재 작업 디렉토리.</li>

      <li>바이너리 설치를 했다면 설치할때 만든 registry 항목.</li>

      <li>서버에 컴파일된 server root. 기본값은
      <code>/apache</code>이고, <code>apache -V</code>를 실행하면
      <code>HTTPD_ROOT</code>라는 항목에서 확인할 수 있다.</li>
    </ol>

    <p>설치할때 윈도우즈 레지스트리에 버전 특유의 레지스트리
    키를 만든다. 키의 위치는 설치 종류에 따라 다르다. install
    Apache for all users를 선택하였다면
    <code>HKEY_LOCAL_MACHINE</code> 아래에 다음과 같은 키를
    만든다 (물론 버전번호는 아파치 버전마다 다르다):
    </p>

    <div class="example"><p><code>
      HKEY_LOCAL_MACHINE\SOFTWARE\Apache Group\Apache\2.0.43
    </code></p></div>

    <p>"모든 사용자"를 대상으로 아파치를 설치하였다면
    <code>HKEY_CURRENT_USER</code> 아래 키가 생긴다. 내용은
    현재 로그온한 사용자에 따라 다르다:</p>

    <div class="example"><p><code>
      HKEY_CURRENT_USER\SOFTWARE\Apache Group\Apache\2.0.43
    </code></p></div>

    <p>키 이름이 서버에 컴파일되기때문에 현재 버전을 건드리지않고
    새로운 버전을 설치하여 테스트해볼 수 있다. 물론 새 버전을
    다른 버전과 같은 디렉토리에 설치하지않도록 주의해야 한다.</p>

    <p>바이너리 설치를 하지 않은 경우 아파치는 레지스트리 키가
    없다고 불평할 수 있다. 서버가 다른 방법으로 설정파일을 찾을
    수 있다면 이 경고를 무시해도 된다.</p>

    <p>키의 값은 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>
    디렉토리이며, 이 디렉토리에 <code>conf</code>라는 하위디렉토리가
    있다. 아파치를 시작하면 이 하위디렉토리에서
    <code>httpd.conf</code> 파일을 읽는다. 이 파일에 나오는
    <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> 지시어가
    레지스트리 키에 나온 디렉토리와 다르다면, 아파치는 레지스트리에서
    얻은 값을 무시하고 앞으로 설정파일에 나온 디렉토리를 사용한다.
    아파치 디렉토리나 설정파일을 다른 장소로 복사하면 반드시
    <code>httpd.conf</code> 파일에 있는 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></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="test" id="test">정상적으로 설치되었는지 검사하기</a></h2>
    

    <p>(콘솔창이나 service를 통해) 아파치를 시작하면 (설정파일의
    <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> 지시어를
    수정하거나 아파치를 "현재 사용자만" 대상으로 설치하지 않는
    경우) 80번 포트를 기다린다. 브라우저를 시작하고 URL을 입력하여
    서버의 기본 페이지에 접근하다:</p>

    <div class="example"><p><code>
      http://localhost/
    </code></p></div>

    <p>아파치는 아파치 설명서 링크가 있는 환영페이지를 보여줘야
    한다. 아무 일도 일어나지 않거나 오류가 나오면, <code>logs</code>
    하위디렉토리에 있는 <code>error.log</code> 파일을 살펴봐라.
    호스트가 네트웍에 연결되있지 않거나 DNS (Domain Name Service)
    설정에 문제가 있다면 다음 URL을 사용해야 한다:</p>

    <div class="example"><p><code>
      http://127.0.0.1/
    </code></p></div>

    <p>기본 설치가 동작하면 <code>conf</code> 하위디렉토리에
    있는 파일을 적절히 설정한다. 또, Windows NT 아파치 service
    설정을 수정한 경우 먼저 명령행에서 아파치를 시작하여 오류가
    발생하지않는지 확인해야 한다.</p>

    <p>아파치가 다른 TCP/IP 프로그램과 같은 포트를 공유할 수
    <strong>없기때문에</strong> 아파치를 시작하기 전에 다른
    서비스를 중단, 제거, 재설정해야 할지도 모른다. 다른 웹서버나
    특정 방화벽 서버스와 충돌할 수 있다.
    </p>

  </div></div>
<div class="bottomlang">
<p><span>가능한 언어: </span><a href="../en/platform/windows.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../ko/platform/windows.html" title="Korean">&nbsp;ko&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/2.2/platform/windows.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 2013 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>