<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="ko"><head><META http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Novell NetWare에서 아파치 사용하기 - Apache HTTP Server Version 2.4</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.min.js">
</script>

<link href="../images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">모듈</a> | <a href="../mod/quickreference.html">지시어들</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">용어</a> | <a href="../sitemap.html">사이트맵</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
<p class="apache">Apache HTTP Server Version 2.4</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">HTTP Server</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Platform Specific Notes</a></div><div id="page-content"><div id="preamble"><h1>Novell NetWare에서 아파치 사용하기</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>가능한 언어: </span><a href="../en/platform/netware.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/platform/netware.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ko/platform/netware.html" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>
<div class="outofdate">이 문서는 최신판 번역이 아닙니다.
            최근에 변경된 내용은 영어 문서를 참고하세요.</div>


    <p>이 문서는 Novell NetWare 6.0 이상에서 아파치 2.0을 설치,
    설정, 실행하는 방법을 설명한다. 버그를 찾았거나 다른 방법으로
    돕고싶다면, <a href="http://httpd.apache.org/bug_report.html">버그
    보고 페이지</a>를 이용하길 바란다.</p>

    <p>버그 보고 페이지나 dev-httpd 메일링리스트는 아파치 설정과
    실행에 대한 질문을 답하지 <em>않는다</em>. 버그를 보고하기
    전에 먼저 이 문서와 <a href="../faq/">자주 물어보는 질문
    (FAQ)</a> 페이지, 다른 관련문서를 살펴봐라. 그래도 궁금한
    점이나 문제가 있다면, NetWare에서 아파치 사용에 대한 어렵고
    새로운 질문을 답해줄 많은 아파치 사용자가 있는 <a href="news://developer-forums.novell.com/novell.devsup.webserver">
    novell.devsup.webserver</a> 뉴스그룹에 글을 올리길 바란다.</p>

    <p>이 문서는 바이너리 배포본으로 아파치를 설치했다고 가정한다.
    (아마도 개발에 도움을 주거나 버그를 찾기위해) 직접 아파치를
    컴파일하려면 아래 <a href="#comp">NetWare에서 아파치
    컴파일하기</a> 절을 참고하라.</p>

  </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">NetWare용 아파치 다운받기</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#inst">NetWare용 아파치 설치하기</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#run">NetWare용 아파치 실행하기</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#use">NetWare용 아파치 설정하기</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#comp">Netware용 아파치 컴파일하기</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="req">요구조건 <a title="Permanent link" href="#req" class="permalink">&para;</a></h2>

    

    <p>아파치 2.0은 NetWare 6.0 service pack 3 이상에서 동작하도록
    설계되었다. SP3보다 낮은 service pack을 사용한다면 최신
    <a href="http://developer.novell.com/ndk/libc.htm">NetWare
    Libraries for C (LibC)</a>를 설치해야 한다.</p>

    <p>NetWare service pack은 <a href="http://support.novell.com/misc/patlst.htm#nw">여기</a>에
    있다.</p>

    <p>최신 service pack이나 최신 버전 <a href="http://developer.novell.com/ndk/libc.htm">NetWare
    Libraries for C (LibC)</a>를 설치했다면 NetWare 5.1 환경에서도
    NetWare용 아파치 2.0을 실행할 수 있다. <strong>경고:</strong>
    NetWare용 아파치 2.0은 이 환경을 고려하지 않았고 테스트하지
    않았다.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="down">NetWare용 아파치 다운받기 <a title="Permanent link" href="#down" class="permalink">&para;</a></h2>

    

    <p>아파치 최신 버전에 대한 정보는 <a href="http://www.apache.org/">http://www.apache.org/</a>에서
    (아파치 웹서버) 찾을 수 있다. 여기에는 현재 버전과 최근
    알파/베타테스트 버전, 미러 웹사이트와 ftp 사이트 정보가
    있다. NetWare용 아파치 2.0의 최신 바이너리 배포본은 <a href="http://www.apache.org/dist/httpd/binaries/netware">여기</a>에서
    다운받을 수 있다.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="inst">NetWare용 아파치 설치하기 <a title="Permanent link" href="#inst" class="permalink">&para;</a></h2>

    

    <p>현재 NetWare용 아파치 설치프로그램은 없다. NetWare용
    아파치 2.0 소스를 직접 컴파일한다면 파일을 서버로 직접
    복사해줘야 한다.</p>

    <p>바이너리로 다운받은 NetWare용 아파치를 설치하는 과정은
    다음과 같다 (<code>sys:/apache2</code>에 설치한다고 가정한다):</p>

    <ul>
      <li>바이너리로 다운받은 압축파일을 <code>SYS:</code> 볼륨
      최상위 디렉토리에 푼다 (다른 볼륨에 설치해도 된다)</li>

      <li><code>httpd.conf</code> 파일을 수정하여 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>와 <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>과 파일경로 값을 서버에
      알맞게 지정한다</li>

      <li>예를 들어 <div class="example"><p><code>SEARCH ADD SYS:\APACHE2</code></p></div>와
      같이 검색경로에 <code>SYS:/APACHE2</code>를 추가한다
      </li>

    </ul>

    <p>직접 소스를 컴파일한 경우 NetWare에 아파치를 설치하는
    방법은 다음과 같다 (<code>sys:/apache2</code>에 설치한다고
    가정한다):</p>

    <ul>
      <li>NetWare 볼륨에 <code>Apache2</code>라는 디렉토리를
      만든다</li>

      <li><code>APACHE2.NLM</code>과 <code>APRLIB.NLM</code>을
      <code>SYS:/APACHE2</code>에 복사한다</li>

      <li><code>SYS:/APACHE2</code> 아래에 <code>BIN</code>이라는
      디렉토리를 만든다</li>

      <li><code>HTDIGEST.NLM</code>, <code>HTPASSWD.NLM</code>, 
      <code>HTDBM.NLM</code>, <code>LOGRES.NLM</code>,
      <code>ROTLOGS.NLM</code>을 <code>SYS:/APACHE2/BIN</code>에
      복사한다</li>

      <li><code>SYS:/APACHE2</code> 아래에 <code>CONF</code>라는
      디렉토리를 만든다</li>

      <li><code>HTTPD-STD.CONF</code> 파일을
      <code>SYS:/APACHE2/CONF</code>에 복사하고 파일명을
      <code>HTTPD.CONF</code>로 변경한다</li>

      <li><code>MIME.TYPES</code>, <code>CHARSET.CONV</code>,
      <code>MAGIC</code> 파일을 <code>SYS:/APACHE2/CONF</code>
      디렉토리에 복사한다</li>

      <li><code>\HTTPD-2.0\DOCS\ICONS</code>에 있는 모든 파일과
      하위디렉토리를 <code>SYS:/APACHE2/ICONS</code>로 복사한다</li>

      <li><code>\HTTPD-2.0\DOCS\MANUAL</code>에 있는 모든 파일과
      하위디렉토리를 <code>SYS:/APACHE2/MANUAL</code>로 복사한다</li>

      <li><code>\HTTPD-2.0\DOCS\ERROR</code>에 있는 모든 파일과
      하위디렉토리를 <code>SYS:/APACHE2/ERROR</code>로 복사한다</li>

      <li><code>\HTTPD-2.0\DOCS\DICROOT</code>에 있는 모든 파일과
      하위디렉토리를 <code>SYS:/APACHE2/HTDOCS</code>로 복사한다</li>

      <li>서버에 <code>SYS:/APACHE2/LOGS</code> 디렉토리를 만든다</li>

      <li>서버에 <code>SYS:/APACHE2/APACHE2/CGI-BIN</code>이란
      디렉토리를 만든다</li>

      <li><code>SYS:/APACHE2/MODULES</code> 디렉토리를 만들고
      모든 nlm 모듈을 <code>modules</code> 디렉토리로 복사한다</li>

      <li><code>HTTPD.CONF</code> 파일의 모든 <code>@@Value@@</code>
      표시를 적절한 설정으로 대체한다</li>

      <li><div class="example"><p><code>SEARCH ADD SYS:\APACHE2</code></p></div> 같이 검색경로에
      <code>SYS:/APACHE2</code>를 추가한다
      </li>
    </ul>

    <p>기본 <code>SYS</code> 볼륨이 아닌 다른 볼륨에도 아파치를
    설치할 수 있다.</p>

    <p>makefile 명령어에 "install" 키워드를 사용하면 컴파일시
    자동으로 <code>DIST</code> 하위디렉토리에 완전한 배포본을
    만든다. makefile로 만든 배포본을 NetWare 볼륨 최상위 디렉토리로
    복사하면 아파치가 설치된다 (아래 <a href="#comp">NetWare용
    아파치 컴파일하기</a> 참고).</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="run">NetWare용 아파치 실행하기 <a title="Permanent link" href="#run" class="permalink">&para;</a></h2>

    

    <p>아파치를 시작하려면 콘솔에서 <code>apache</code>를 입력하면
    된다. 그러면 운영체제 주소영역에 아파치를 읽어들인다.
    보호주소영역에 아파치를 읽어들이려면 다음과 같이 load 명령어로
    주소영역을 지정한다:</p>

    <div class="example"><p><code>
      load address space = apache2 apache2
    </code></p></div>

    <p>그러면 아파치를 apache2라는 주소영역에 읽어들인다.
    NetWare는 여러 아파치를 각각 다른 보호주소영역에 읽어들여서
    여러 아파치를 동시에 실행할 수 있다.</p>

    <p>아파치가 시작하면 (설정파일에서 <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> 지시어를 수정하지
    않는한) 포트 80번을 기다린다. 브라우저를 시작하여 서버명
    혹은 서버 주소를 입력하면 서버에 접속하여 기본페이지에
    접근한다. 아파치 설명서 링크가 있는 환영페이지가 나와야
    한다. 아무 일도 없거나 오류가 발생하면 <code>logs</code>
    디렉토리에 있는 <code>error_log</code> 파일을 살펴봐라.</p>

    <p>기본 설치가 동작하면 <code>conf</code> 디렉토리에 있는
    파일을 적절히 설정한다.</p>

    <p>운영체제 주소영역에서 실행중인 아파치를 내릴려면 콘솔에
    다음과 같이 입력한다:</p>

    <div class="example"><p><code>
      unload apache2
    </code></p></div>

    <p>혹은</p>

    <div class="example"><p><code>
      apache2 shutdown
    </code></p></div>

    <p>보호주소영역에서 아파치를 실행했다면 unload 명령어에
    주소영역을 지정한다:</p>

    <div class="example"><p><code>
      unload address space = apache2 apache2
    </code></p></div>

    <p>아파치가 설정파일 위치를 찾는 방법을 알아두어야 한다.
    명령행에서 설정파일을 지정하는 방법은 두가지다:</p>

    <ul>
      <li><code>-f</code>는 특정 설정파일 경로를 지정한다</li>
    </ul>

    <div class="example"><p><code>
      apache2 -f "vol:/my server/conf/my.conf"
    </code></p></div>

    <div class="example"><p><code>
      apache -f test/test.conf
    </code></p></div>

    <p>이 경우 설정파일은 올바른 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>를 설정해야 한다.</p>

    <p><code>-f</code>로 설정파일명을 지정하지 않으면, 아파치는
    서버에 컴파일된 파일명을 (보통 <code>conf/httpd.conf</code>)
    사용한다. <code>-V</code> 옵션으로 아파치를 시작하면
    <code>SERVER_CONFIG_FILE</code>이라는 항목을 보여준다.
    아파치는 다음 순서대로 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>를 찾는다:</p>

    <ul>
      <li><code>-C</code> 옵션의 <code>ServerRoot</code> 지시어.</li>

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

      <li>현재 디렉토리</li>

      <li>서버에 컴파일된 server root.</li>
    </ul>

    <p>서버에 컴파일된 server root는 보통
    <code>sys:/apache2</code>이다. <code>-V</code> 옵션으로
    아파치를 시작하면 <code>HTTPD_ROOT</code>라는 항목을 보여준다.</p>

    <p>NetWare용 아파치 2.0에는 실행중인 웹서버를 죽이거나 정보를
    알려주는 명령행 지시어가 있다. 이들 지시어는 아파치 동작중에만
    사용할 수 있다. 지시어 앞에는 <code>APACHE2</code> 키워드를
    붙여야 한다.</p>

    <dl>
      <dt>RESTART</dt>
      <dd>모든 쓰레드가 쉬는 상태일때 아파치를 죽이고, 설정파일을
      다시 읽은후 새로운 설정에 따라 worker 쓰레드들을 재시작한다.</dd>

      <dt>VERSION</dt>
      <dd>현재 실행중인 아파치 버전 정보를 출력한다.</dd>

      <dt>MODULES</dt>
      <dd>기본 모듈과 외부 모듈 목록을 출력한다.</dd>

      <dt>DIRECTIVES</dt>
      <dd>모든 지시어 목록을 출력한다.</dd>

      <dt>SETTINGS</dt>
      <dd>콘솔에 쓰레드 상태 표시를 보이거나 없앤다. 상태를
      보이면, 아파치 콘솔창에 동작하는 쓰레드들의 상태가 나온다.</dd>

      <dt>SHUTDOWN</dt>
      <dd>실행중인 아파치 웹서버를 죽인다.</dd>

      <dt>HELP</dt>
      <dd>실행 옵션들을 설명한다.</dd>
    </dl>

    <p>기본적으로 이 지시어들은 운영체제 주소영역에서 실행중인
    아파치를 대상으로 한다. 아파치가 보호주소영역에서 실행중이라면,
    -p와 주소영역 이름을 추가한다. 더 많은 정보를 보려면 명령행에
    "apache2 Help"를 입력한다.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="use">NetWare용 아파치 설정하기 <a title="Permanent link" href="#use" class="permalink">&para;</a></h2>

    

    <p>아파치는 보통 <code>conf</code> 디렉토리에 있는 설정파일로
    설정한다. 이 파일은 유닉스용과 같지만, NetWare용 아파치에는
    조금 다른 지시어들이 있다. 사용가능한 모든 지시어에 대해서는
    <a href="../">아파치 문서</a>를 참고하라.</p>

    <p>NetWare용 아파치의 주된 차이점은:</p>

    <ul>
      <li>
        <p>NetWare용 아파치는 다중쓰레드 방식을 사용하기때문에,
        유닉스와 같이 요청마다 다른 프로세스를 사용하지 않는다.
        대신 여러 쓰레드를 실행한다: 부모 쓰레드와 요청을 처리하는
        여러 자식 혹은 worker 쓰레드들.</p>

        <p>그러므로 "프로세스"-관리 지시어가 다르다:</p>

        <p><code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code> -
        유닉스와 같이 worker 쓰레드가 요청을 얼마만큼 처리하고
        죽을지를 조정한다. 권장하는 기본값
        <code>MaxRequestsPerChild 0</code>을 사용하면 쓰레드는
        죽지않고 영원히 요청을 서비스한다. 특별한 이유가 없다면
        NetWare에서는 이 지시어를 <code>0</code>으로 설정하길
        권한다.</p>

        <p><code class="directive"><a href="../mod/mpm_common.html#startthreads">StartThreads</a></code> -
        이 지시어는 서버가 처음에 시작할 쓰레드 개수를 결정한다.
        권장하는 기본값은 <code>StartThreads 50</code>이다.</p>

        <p><code class="directive"><a href="../mod/mpm_common.html#minsparethreads">MinSpareThreads</a></code> -
        서버는 쉬는(idle) 쓰레드 개수가 이 값보다 적으면 worker
        쓰레드를 더 만든다. 권장하는 기본값은
        <code>MinSpareThreads 10</code>이다.</p>

        <p><code class="directive"><a href="../mod/mpm_common.html#maxsparethreads">MaxSpareThreads</a></code> -
        서버는 쉬는 쓰레드 개수가 이 값보다 많으면 worker 쓰레드를
        죽이기 시작한다. 권장하는 기본값은
        <code>MaxSpareThreads 100</code>이다.</p>

        <p><code class="directive"><a href="../mod/mpm_netware.html#maxthreads">MaxThreads</a></code> -
        이 지시어는 worker 쓰레드의 최대 개수를 제한한다. 권장하는
        기본값은 <code>ThreadsPerChild 250</code>이다.</p>

        <p><code class="directive"><a href="../mod/mpm_common.html#threadstacksize">ThreadStackSize</a></code> -
        한 worker 쓰레드가 사용할 스택 크기를 지시한다. 권장하는
        기본값은 <code>ThreadStackSize 65536</code>이다.</p>
      </li>

      <li>
        <p>아규먼트로 파일명을 받는 지시어에는 유닉스 파일명이
        아닌 NetWare 파일명을 사용해야 한다. 그러나 아파치가
        내부적으로 유닉스식 파일명을 사용하기때문에 백슬래쉬
        대신 슬래쉬를 사용해야 한다. 모든 절대경로에 볼륨명을
        포함하길 바란다. 볼륨명을 생략하면 아파치는
        <code>SYS:</code> 볼륨이라고 잘못 가정할 수 있다.</p>
      </li>

      <li>
        <p>NetWare용 아파치는 서버를 다시 컴파일하지 않고 실행할때
        모듈을 읽어들일 수 있다. 보통 아파치를 컴파일하면
        <code>\Apache2\modules</code> 디렉토리에 여러 추가 모듈을
        설치한다. 이들 혹은 다른 모듈을 사용하려면 <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code> 지시어를 사용한다.
        예를 들어 status 모듈을 사용한다면:</p>

        <div class="example"><p><code>
          LoadModule status_module modules/status.nlm
        </code></p></div>

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

    <h3 id="use-add">이외의 NetWare 전용 지시어들:</h3>

      

      <ul>
        <li><code class="directive"><a href="../mod/core.html#cgimapextension">CGIMapExtension</a></code> -
        CGI 파일 확장자를 스크립트 인터프리터와 연결한다.</li>
      </ul>
      <ul>
        <li><code class="directive"><a href="../mod/mod_nw_ssl.html#securelisten">SecureListen</a></code> -
        특정 포트를 SSL 암호화한다.</li>
      </ul>
      <ul>
        <li><code class="directive"><a href="../mod/mod_nw_ssl.html#nwssltrustedcerts">NWSSLTrustedCerts</a></code> -
        프록시하는 서버에 보안연결할때 사용할 신뢰하는
        인증서(certificate)를 추가한다.</li>
      </ul>
      <ul>
        <li><code class="directive"><a href="../mod/mod_nw_ssl.html#nwsslupgradeable">NWSSLUpgradeable</a></code> -
        특정 주소/포트로 맺어진 연결을 SSL 연결로 변경할 수
        있다.</li>
      </ul>

    

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="comp">Netware용 아파치 컴파일하기 <a title="Permanent link" href="#comp" class="permalink">&para;</a></h2>

    

    <p>아파치를 컴파일하려면 MetroWerks CodeWarrior 6.x 이상이
    필요하다. 아파치를 컴파일하면 어떤 Netware 볼륨에라도 설치할
    수 있다. 기본값은 <code>sys:/Apache2</code> 디렉토리다.</p>

    <p>서버를 실행하기 전에 <code>conf</code> 디렉토리를 작성해야
    한다. 배포본의 <code>conf</code> 디렉토리에 있는
    <code>HTTPD-STD.CONF</code> 파일명을 <code>HTTPD.CONF</code>로
    변경한다. <code>HTTPD.CONF</code> 파일에서 <code>@@Value@@</code>
    표시를 찾아서 적절한 설정으로 대체한다. <code>conf/magic</code>과
    <code>conf/mime.types</code> 파일도 복사한다. 아니면 makefile을
    실행할때 <code>install</code> 키워드를 사용하면 완전한 배포본을
    만든다.</p>

    <h3 id="comp-req">요구사항:</h3>

      

      <p>NetWare용 아파치 2.0을 컴파일하려면 다음 개발도구가
      필요하다:</p>

      <ul>
        <li>Metrowerks CodeWarrior 6.0 이상과 <a href="http://developer.novell.com/ndk/cwpdk.htm">NetWare
        PDK 3.0</a> 이상.</li>

        <li><a href="http://developer.novell.com/ndk/libc.htm">NetWare
        Libraries for C (LibC)</a></li>

        <li><a href="http://developer.novell.com/ndk/cldap.htm">LDAP
        Libraries for C</a></li>

        <li><a href="http://www.gzip.org/zlib/">ZLIB 압축 라이브러리
        소스코드</a></li>

        <li>AWK 도구 (awk, gawk 등). AWK는 <a href="http://developer.novell.com/ndk/apache.htm">http://developer.novell.com/ndk/apache.htm</a>에서
        다운받을 수 있다. 도구를 <code>awk.exe</code>란 이름으로
        윈도우즈 경로에 두어야 한다.</li>

        <li>makefile을 사용하여 컴파일하려면 <a href="http://developer.novell.com/ndk/apache.htm">http://developer.novell.com/ndk/apache.htm</a>에
        있는 GNU make 버전 3.78.1 (GMake)이 필요하다.</li>
      </ul>

    

    <h3 id="comp-make">NetWare makefile을 사용하여 아파치 컴파일하기:</h3>

      

      <ul>
        <li><code>NOVELLLIBC</code> 환경변수를
        <div class="example"><p><code>Set NOVELLLIBC=c:\novell\ndk\libc</code></p></div>와
        같이 NetWare Libraries for C SDK 위치로 설정한다.
        </li>

        <li><code>METROWERKS</code> 환경변수를
        <div class="example"><p><code>Set METROWERKS=C:\Program Files\Metrowerks\CodeWarrior</code></p></div>와
        같이 Metrowerks CodeWarrior 컴파일러를 설치한 위치로
        설정한다. 기본 위치인
        <code>C:\Program Files\Metrowerks\CodeWarrior</code>에
        설치하였다면, 환경변수를 설정할 필요는 없다.</li>

        <li><code>LDAPSDK</code> 환경변수를
        <div class="example"><p><code>Set LDAPSDK=c:\Novell\NDK\cldapsdk\NetWare\libc</code></p></div>와
        같이 LDAP Libraries for C를 설치한 위치로 설정한다.
        </li>

        <li><code>ZLIBSDK</code> 환경변수를
        <div class="example"><p><code>Set ZLIBSDK=D:\NOVELL\zlib</code></p></div>과 같이
        ZLib 라이브러리 소스코드 위치로 설정한다.
        </li>
        
        <li><code>AP_WORK</code> 환경변수를 <code>\httpd-2.0</code>
        디렉토리의 전체 경로로 설정한다.</li>

        <li><code>APR_WORK</code> 환경변수를
        <code>\httpd-2.0\srclib\apr</code> 디렉토리의 전체 경로로
        설정한다.</li>

        <li>AWK 도구와 GNU make (<code>gmake.exe</code>) 도구가
        시스템의 <code>PATH</code> 환경변수에 포함되있는지
        확인한다.</li>

        <li>소스코드를 다운받아 적당한 디렉토리에 압축을 푼다.</li>

        <li><code>\httpd-2.0\srclib\apr-util\uri</code> 디렉토리에서
        "<code>gmake -f nwgnumakefile</code>"을 실행하여
        <code>GENURI.nlm</code>을 컴파일한다.</li>

        <li><code>GENURI.nlm</code> 파일을 NetWare 서버의
        <code>SYS:</code> 볼륨으로 복사하고
        <div class="example"><p><code>SYS:\genuri &gt; sys:\uri_delims.h</code></p></div>
        명령을 실행한다.
        </li>

        <li><code>uri_delims.h</code> 파일을 컴파일하는 컴퓨터의
        <code>\httpd-2.0\srclib\apr-util\uri</code> 디렉토리로
        복사한다.</li>

        <li><code>\httpd-2.0\srclib\apr</code> 디렉토리에서
        "<code>gmake -f nwgnumakefile</code>"을 실행하여 APR을
        컴파일한다.</li>

        <li><code>\httpd-2.0\srclib\pcre</code> 디렉토리에서
        "<code>gmake -f nwgnumakefile</code>"을 실행하여
        <code>DFTABLES.nlm</code>을 컴파일한다.</li>

        <li><code>\httpd-2.0\server</code> 디렉토리에서
        "<code>gmake -f nwgnumakefile</code>"을 실행하여
        <code>GENCHARS.nlm</code>을 컴파일한다.</li>

        <li>각 디렉토리의 <code>GENCHARS.nlm</code>과
        <code>DFTABLES.nlm</code> 파일을 NetWare 서버의
        <code>SYS:</code> 볼륨으로 복사하고 다음과 같이 실행한다:
          <div class="example"><p><code>
            SYS:\genchars &gt; sys:\test_char.h<br>
            SYS:\dftables &gt; sys:\chartables.c<br>
          </code></p></div>
        </li>

        <li><code>test_char.h</code>와 <code>chartables.c</code>
        파일을 컴파일하는 컴퓨터의 <code>\httpd-2.0\os\netware</code>
        디렉토리로 복사한다.</li>

        <li><code>\httpd-2.0</code> 디렉토리에서
        "<code>gmake -f nwgnumakefile</code>"을 실행하여 아파치를
        컴파일한다.
        <div class="example"><p><code>gmake -f nwgnumakefile install</code></p></div>과
        같이 install 파라미터를 추가하면 배포용 디렉토리를 만들
        수 있다.
        </li>
      </ul>

    

    <h3 id="comp-add">추가 make 옵션</h3>

      

      <ul>
        <li><code>gmake -f nwgnumakefile</code><p>일반 실행파일을
        컴파일하여 <code>\release</code> 디렉토리로 복사한다.</p></li>

        <li><code>gmake -f nwgnumakefile DEBUG=1</code><p>디버그용
        실행파일을 컴파일하여 <code>\debug</code> 디렉토리로
        복사한다.</p></li>

        <li><code>gmake -f nwgnumakefile install</code>
        <p><code>\dist\Apache2</code> 디렉토리에 실행파일, 문서,
        추가 지원파일을 포함한 완전한 아파치 배포본을 만든다.</p></li>

        <li><code>gmake -f nwgnumakefile installdev</code>
        <p>install과 비슷하지만, <code>\lib</code>과
        <code>\include</code> 디렉토리를 만들고 헤더파일과 import
        파일을 복사한다.</p></li>

        <li><code>gmake -f nwgnumakefile clean</code>
        <p><code>DEBUG</code> 정의 유무에 따라 <code>\release</code>나
        <code>\debug</code>에 있는 오브젝트파일과 실행파일을
        모두 지운다.</p></li>

        <li><code>gmake -f nwgnumakefile clobber_all</code><p>clean과
        비슷하지만 디렉토리도 지운다.</p></li>
      </ul>

    

  </div></div>
<div class="bottomlang">
<p><span>가능한 언어: </span><a href="../en/platform/netware.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/platform/netware.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ko/platform/netware.html" title="Korean">&nbsp;ko&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">모듈</a> | <a href="../mod/quickreference.html">지시어들</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">용어</a> | <a href="../sitemap.html">사이트맵</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>