<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<article>
<Articleinfo>
   <title>아파치 WebDAV와 LDAP HOWTO</title>
   <author>
      <firstname>Saqib</firstname>
      <surname>Ali</surname>
      <affiliation>
         <address>
            <email>saqib (at) seagate.com</email>
         </address>
      </affiliation>
   </author>
  <othercredit role="translator" lang="ko">
     <firstname>석문</firstname>
     <surname>장</surname>
     <affiliation>
        <address>
           <email>linuxodyssey (at) hanmail.net</email>
        </address>
     </affiliation>
  </othercredit>
  <othercredit role="translator" lang="ko">
     <firstname>혜진</firstname>
     <surname>전</surname>
     <affiliation>
        <address>
           <email>linuxsingle (at) hanmail.net</email>
        </address>
     </affiliation>
  </othercredit>
   <revhistory>
      <revision>
         <revnumber>v1.1-ko1.1</revnumber>
         <date>2002-1-8</date>
         <authorinitials>장석문</authorinitials>
          <revremark>
			오타 수정 및 내용 정리
         </revremark>
      </revision>
      <revision>
         <revnumber>v1.1-ko</revnumber>
         <date>2001-12-29</date>
         <authorinitials>jin/moon</authorinitials>
          <revremark>
			한국어로 번역.
         </revremark>
      </revision>
      <revision>
         <revnumber>v1.1</revnumber>
         <date>2001-11-29</date>
         <authorinitials>sa</authorinitials>
          <revremark>
         </revremark>
      </revision>
      <revision>
         <revnumber>v1.0</revnumber>
         <date>2001-11-01</date>
         <authorinitials>sa</authorinitials>
          <revremark>
              첫 발표.
         </revremark>
      </revision>
   </revhistory>
   <abstract>
      <para>이 문서는 아파치 기반의 WebDAV 서버를 어떻게 설치하고, 설정하고, 사용하며 유지하고 조절할 수 있는지에 관한 것이다.</para>
   </abstract>
</Articleinfo>
<sect1 id="intro"> <title>들어가며</title>
<para>이 문서는 LDAP 서버와는 달리 인증이 가능한 아파치 기반의 WebDAV 서버를 설치/설정하는 법을 설명할 것이다. 당신은 이것을 설치하고, 설정하고, 사용하며 유지하고 조절하는 방법을 배우게 될 것이다. 이 문서는 WebDAV 서버를 세팅하는 데 있어 기본적인 토대를 제공할 것이다. 이것은 서버를 유지하고 좋은 튜닝을 하기 위한 정보들을 제공할 것이다.</para>
<para><emphasis role="strong">Note: 아파치나 다른 모듈들을 설치하는 데 어떤 문제가 발생한다면 나에게 알려주기 바란다.</emphasis> </para>
<para> <emphasis role="strong"><ulink url="http://www.stonebeat.org">WebDAV 포럼</ulink></emphasis> </para>
<para> <emphasis role="strong">이 문서는 LDAP 서버를 설치하는 HOWTO가 아니다. </emphasis> LDAP 서버를 설치하는 문제에 관해서라면 <ulink url="http://www.linuxdoc.org/HOWTO/LDAP-HOWTO-1.html"> http://www.linuxdoc.org/HOWTO/LDAP-HOWTO-1.html</ulink>를 참고해 주시 바란다. </para>
<sect2 id="copyright">
<title>Copyright and License</title>
<para>
이 문서의 저작권은 Saqib Ali에게 있다. 복사하거나, GNU Free Documentation License 하에서 수정하고 배포할 수 있다. 1.1 버전과 그 이후의 버전들은 자유 소프트웨어 재단에 의해 불변적인 섹션이나 표지 같은 것 없이 출판될 것이다. 이 라이센스는 
<ulink url="http://www.gnu.org/copyleft/fdl.html">http://www.gnu.org/copyleft/fdl.html</ulink>에서 얻을 수 있다.
</para>
<sect2><title>WebDAV란 무엇인가?</title>
<para> WebDAV는 웹상의 많은 이들에 의해 만들어지고 발전하고 있다. 개개인이 웹 상에서 파일을 수정하고 관리하는 체재로 협조적인 환경하에서 공급되고 있는 것이다. 요점만 말하면 DAV는 확장된 http 프로토콜이다.</para>
</sect2>
<sect2><title>WebDAV는 어떻게 움직이는가?</title>
<para><emphasis>앞으로 추가될 부분이다....(역자: 고로, 번역할 부분이 줄어들었다. ^_^) </emphasis></para>
</sect2>
<sect2><title>무엇이 필요한가?</title>
<para>이 툴을 사용하기에 앞서 다음과 같은 것들이 있어야 한다.:  </para>
   <itemizedlist>
      <listitem><para>아파치 웹 서버</para></listitem>
      <listitem><para>아파치의 LDAP 모듈</para></listitem>
      <listitem><para>아파치의 WebDAV 모듈</para></listitem>
      <listitem><para>LDAP 라이브러리</para></listitem>
   </itemizedlist>
<para><emphasis role="strong">NOTE:</emphasis> 위의 패키지들은 모두 공짜이며, 넷상에서 다운로드 받아야 한다.</para>
<para>우리는 위의 모든 패키지들을 웹서버를 위한 바이너리들을 만들어 내기 위해 컴파일해야 한다. WebDAV와 LDAP 모듈은 아파치 상에서 정적으로 컴파일될 것이다. 정적인 컴파일의 결과는 빠른 실행 속도로 돌아온다. 아파치는 가장 다목적으로 사용되는 웹 서버이므로 선택되었다.
<ulink url="http://www.netcraft.com/survey/">웹 서버들의 비율</ulink>은, 아파치가 시장에서도 가장 많은 비율을 차지하는 웹 서버임을 알려준다.</para>
<para>아파치는 다음과 같은 곳들에서도 사용된다.:</para>
   <itemizedlist>
     <listitem><para><ulink url="http://www.rackspace.com">RackSpace</ulink>
      - 웹호스팅 공급자</para></listitem>
     <listitem><para><ulink url="http://www.cihost.com">CIHost</ulink>
      - 웹호스팅 공급자</para></listitem>
     <listitem><para><ulink url="http://www.slashdot.org">SlashDot</ulink>
     </para></listitem>
   </itemizedlist>
</sect2>
<sect2><title>전제조건</title>
<para>이 문서는 일단 아래와 같은 것들이 당신의 시스템에 이미 설치되어 있다는 것을 가정하고 있다.</para>
    <orderedlist>
       <listitem><para>gzip 혹은 gunzip - <ulink url="http://www.gnu.org">http://www.gnu.org</ulink>에서 얻을 수 있다.</para></listitem>
       <listitem><para>gcc 혹은 GNU make - 역시 <ulink url="http://www.gnu.org">http://www.gnu.org</ulink>에서 얻을 수 있다.</para></listitem>
    </orderedlist>
 
<para>이 문서는 LDAP 서버가 이미 설치되어 있거나 혹은 앞으로 인증을 위해 사용될 것을 전제로 하고 있다.</para>
</sect2>
<sect2><title>의견과 추가할 점</title>
<para>
만약 당신에게 어떤 질문이나 의견이 있다면 <ulink url="mailto:saqib@seagate.com">saqib@seagate.com</ulink>로 연락 주기 바란다.
</para>
<para>
만약 추가할 어떤 부분이 있을 때에도 역시 연락해 주기 바란다.
</para>
</sect2>
</sect1>
<sect1 id="inst-webdav"> <title>WebDAV 설치하기</title>
<para>
우리는 먼저 첫 번째로 OpenLDAP 패키지를 설치해야 한다. OpenLDAP은 Apache_LDAP_DAV에는 포함되어 있지 않지 않고 사용하는 데도 꼭 필요한 것은 아니지만, mod_ldap를 컴파일하는 데 OpenLDAP 라이브러리가 필요하다. 이것을 설치한 후 아파치와 함께 mod_ldap와 mod_dav를 설치하겠다.</para>
<para>
다음의 패키지들을 다운로드 받도록 한다.
</para>
    <itemizedlist>
       <listitem><para><ulink url="http://www.apache.org">아파치 웹 서버</ulink></para></listitem>
       <listitem><para><ulink url="http://www.openldap.org/">OpenLDAP</ulink>(LDAP 라이브러리 파일들을 위해)</para></listitem>
       <listitem><para><ulink url="http://www.webdav.org/mod_dav/">mod_dav</ulink> 
            (WebDAV를 위한 아파치 모듈)</para></listitem>
       <listitem><para><ulink url="http://www.muquit.com/muquit/software/mod_auth_ldap/mod_auth_ldap.html">mod_ldap</ulink>
            (LDAP를 위한 LDAP 모듈)</para></listitem>
    </itemizedlist>
<sect2><title>먼저 요구되는 것들</title>
<para>LDAP와 함께 WebDAV를 컴파일하기 위해 LDAP 라이브러리 파일들을 먼저 설치해야 한다. LDAP 라이브러리 파일들은 아파치에서 사용되는 LDAP 모듈을 컴파일하는 데 필요하다. LDAP 라이브러리를 얻는 가장 좋은 방법은 <ulink url="http://www.openldap.org">http://www.openldap.org</ulink> OpenLDAP에서 소스 코드를 다운로드 받아 컴파일하여 포함된 라이브러리를 사용하는 것이다. 당신은 다른 IPlenet과 비슷한 다른 어떤 LDAP를 사용해도 좋지만, 나는 오픈 소스 솔루션인 OpenLDAP를 추천하는 바이다.</para>
<sect3><title>OpenLDAP 라이브러리 파일 설치</title>
<para>su 명령을 사용하여 root의 권한으로 실행해야 한다.:  </para>
<para><command>$ su</command></para>
<para>OpenLDAP(tar) 소스 파일이 있는 디렉토리로 이동한다. 나의 경우에는 temp 디렉토리 하의 <filename>/tmp/download</filename>를 주로 이용한다.:  </para>
<para><command># cd /tmp/download</command></para>
<para> gzip과 tar를 이용하여 파일의 압축을 해제한다.:  </para>
<para><command># gzip -d openldap-stable-xxxxxxx.tar.gz</command></para>
<para><command># tar -xvf openldap-stable-xxxxxxx.tar</command></para>
<para>압축이 풀리며 만들어진 새로운 디렉토리로 이동한다.</para>
<para><command># cd openldap-x.x.xx</command></para>
<para>"<command>configure</command>" 명령을 실행한다. "<command>configure</command>" 에는 많은 명령이 들어있다. "<command>configure --help</command>"를 입력하여 모든 옵션들을 볼 수 있다.</para>
<para>이 웹서버에 LDAP 데몬이 반드시 필요한 것은 아니지만, LDAP 서버를 실행하거나 여타의 상황을 가정할 수는 있겠다. LDAP 데몬을 컴파일하지 않을 때는 '<command>configure</command>'의 명령행 옵션으로 '<option>--disable-slapd</option>' 를 주도록 한다. :</para>
<para><command># ./configure --disable-slapd</command></para>
<para>설정이 끝나면, openldap 패키지를 위한 의존상태를 만들 수 있다.: </para>
<para><command># make depend</command></para>
<para>의존상태를 만들고 나면, openldap 패키지를 컴파일해아 한다. <command>make</command> 명령을 사용하자.:  </para>
<para><command># make</command></para>
<para>모든 것이 OK로 나타났다면, 컴파일이 끝난 것이다. 그러면 컴파일된 바이너리들을 정해진 장소로 옮기는 작업이 필요하다.: </para>
<para><command># make install</command></para>
<para>이제 LDAP 라이브러리 파일들을 mod_ldap를 위해 컴파일하는 작업이 필요하다.</para>
</sect3>
</sect2>
<sect2><title>아파치 선 구성하기</title>

<para>
 mod_dav는 가 설정된 아파치가 필요합니다. 그래서 설치 위치를 알고 있습니다.
소스파일이 있는 곳으로 디렉토리를 옮깁니다: </para>

<para><screen>
<command>  # cd /tmp/download </command>
<command>  # gzip -d apache_1.x.x.tar.gz </command>
<command>  # tar -xvf apache_1.x.x.tar </command>
<command>  # cd apache_1.x.x </command>
<command>  # ./configure --prefix=/usr/local/apache </command> 
</screen></para>
</sect2>

<sect2><title> mod_dav의 구성과 설치</title>

<para>위에 설명한 대로 mod_dav는 아파치 설치시에 정적으로 연결될 것입니다.
임시 다운로드 디렉토리로 이동하여 시작합니다:</para>

<para><command># cd /tmp/download </command></para>

<para>gzip과 tar를 이용하여 파일의 압축을 해제합니다.:</para>

<para><command># gzip -d mod_dav-1.x.x.tar.gz</command></para>
<para><command># tar -xvf mod_dav-1.x.x.tar</command></para>

<para> 압축을 해제하는 동안 만들어진 새로운 디렉토리로 이동한다:</para>

<para><command># cd mod_dav-1.x.x</command></para>

<para>이제 아파치와 정적으로 링크하기 위해 mod_dav패키지를 구성한다:</para>
 
<para><command># ./configure --with-apache= /tmp/download/apache_1.x.x</command></para>

<para>파일의 컴파일과 설치:</para>

<para><command># make </command></para>
<para><command># make install</command></para>

<para>mod_dav는 부분적으로 컴파일 되었고 make install단계에서 아파치 소스트리에 적절한 위치에 들어가 있다.</para>
</sect2>

<sect2><title>mod_auth_ldap의 설치와 설정</title>

<para>임시 다운로드 디렉토리로 돌아갑니다:</para>

<para><command># cd /tmp/download</command></para>

<para>mod_auth_ldap 파일의 압축을 해제합니다:</para>

<para><command># gzip -d mod _auth_ldap.tar.gz</command></para>
<para><command># tar -xvf mod_auth_ldap.tar</command></para>

<para>이제 아파치 소스트리로 modauthldap파일들을 설치한다: </para>

<para><command>cd apache_x.x.x</command></para>
<para><command>mv ../modauthldap ./src/modules/ldap </command></para>
</sect2>

<sect2><title>아파치의 설정과 설치</title>

<para> 마지막으로 목적지에 도달했다. 그러나 아직 시작일뿐이다........  </para>

<para>이제 WebDAV와 DAV를 위한 LDAP인증을 포함한 아파치를 컴파일하고 설치할 준비가 되었다.</para>

<para>임시 다운로드 디렉토리로 돌아간다:</para>

<para><command># cd /tmp/download</command></para>

<para>아파치 디렉토리로 이동한다:</para>

<para><command># cd apache-x.x.x</command></para>

<para>그리고 mod_dav와 mod_auth_ldap와 함께 컴파일하기 위해 아파치를 구성한다: </para>

<para><screen>
<command>  # ./configure --prefix=/usr/local/apache \
     --activate-module=src/modules/ldap/mod_auth_ldap.c \
     --activate-module=src/modules/dav/libdav.a 
     [...you can add more options here...] </command>
</screen></para>
 
<para>아파치를 컴파일하고 이를 적절한 위치에 설치한다: </para>

<para><command># make </command></para>
<para><command># make install</command></para>
</sect2>

</sect1>

<sect1 id="config-webdav"><title>WebDAV서비스를 구성하고 설정하기</title>

<para> 이제 쉬운 부분이다. 이 절에서 우리는 아파치 루트 밑에 디렉토리에서 WebDAV가 가능하게 한다.</para>

<sect2><title><filename>/usr/local/apache/conf/httpd.conf</filename>의 변경</title>

<para>다음 아파치 지시문이 <filename>/usr/local/apache/conf/httpd.conf</filename>안에 있는지 검사하라:</para>
 
<para><screen>
  Addmodule mod_dav.c
</screen></para>

<para>존재하지 않으면 추가하면 된다. 이 지시문은 아파치에게 DAV 특성을 알려준다. 이 지시문은 모든 컨테이너의 밖에 있어야 한다.
</para>

<para>
다음단계로 아파치가 DAVLockDB 파일을 저장할 장소를 선택해야 한다. DAVLockDB는 WebDAV를 위한 lock 데이터베이스이다.
이 디렉토리는 아파치 프로세스가 쓸 수 있는 곳이어야 합니다.
</para>

<para> <filename>/usr/local/apache/var</filename>아래에 DAVLock파일을 저장할 것이다.
이 디렉토리를 또한 다른 목적으로도 사용할 것이다.
<filename>/usr/local/apache/var</filename>아래에 DAVLockDB를 저장하도록 지정하기 위해
당신의 <filename>/usr/local/apache/conf/httpd.conf</filename>에 다음의 라인을 추가하라.: </para>

<para><screen>
  DAVLockDB      /usr/local/apache/var/DAVLock 
</screen></para>

<para>이 지시문 또한 모든 컨테이너 밖에 위치해야 한다.</para>
</sect2>

<sect2><title>DAVLockDB를 위한 디렉토리 생성하기</title>

<para>위에서 설명한대로 DAVLockDB를 위해서 생성될 디렉토리는 아파치 프로세스가 쓸 수 있어야한다..
일반적으로 웹서버 프로세스는 사용자 '<emphasis>nobody</emphasis>' 로 동작한다.
'<command>ps -ef | grep httpd</command>' 명령을 이용하여 시스템에서 이를 확인하라
다음의 명령들을 이용하여 <filename>/usr/local/apache</filename>아래에 디렉토리를 만들고 권한을 설정하라: </para>

<para><screen>
  <command># cd /usr/local/apache</command>
  <command># mkdir var</command>
  <command># chmod -R 755 var/</command>
  <command># chown -R nobody var/</command>
  <command># chgrp -R nobody var/</command>
</screen></para>

</sect2>

<sect2><title>DAV를 가능하게 하기</title>

<para>DAV를 가능하게 하는 것은 쉬운 일이다.  아파치 루트밑에 디렉토리를 위해 DAV를 가능하게 하는 것은 특별한 디렉토리를 위한
컨테이너에 다음의 지시문을 추가하면 된다: </para>

<para><screen>
  DAV On
</screen></para>

<para> 이 지시문은 디렉토리와 그 서브 디렉토리에서 DAV를 가능하게 할 것이다.</para>

<para> 아래는 <filename>/usr/local/apache/htdocs/DAVtest</filename>에 WebDAV와 LDAP인증을 가능하게 하는 샘플 구성이다.
<filename>/usr/local/apache/conf/httpd.conf</filename>파일안에 이를 추가하라.
</para>

<para><screen>
  &lt;Directory /usr/local/apache/htdocs/DAVtest&gt;
  Dav On
  #Options Indexes FollowSymLinks

  AllowOverride None
  order allow,deny
  allow from all
  AuthName "username_and_passwd_required"
  AuthType Basic
  &lt;Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK&gt;
  Require valid-user
  &lt;/Limit&gt;
  LDAP_Server your.ldap.server.com
  LDAP_Port 007
  Base_DN "o=ROOT"

  UID_Attr uid
  &lt;/Directory&gt;
</screen></para>

</sect2>

<sect2><title>DAVtest라 불리는 디렉토리 생성하기</title>

<para>이전 절에서 설명한것처럼 모든 DAV디렉토리는 웹서버 프로세스가 쓰기 가능해야 한다.
이 예제에서 우리는 웹서버가 사용자 '<emphasis>nobody</emphasis>' 로 동작한다고 가정한다.
이는 일반적인 경우이다. httpd가 어느 사용자로 동작중인지를 확인하기 위해 '<command>ps -ef | grep httpd</command>'를 사용하면 된다.
</para>

<para>'<filename>DAVtest</filename>'라 불리는 시험용 디렉토리를 
<filename>/usr/local/apache/htdocs</filename> 아래에 만들기:</para>

<para><command># mkdir /usr/local/apache/htdocs/DAVtest</command></para>

<para>디렉토리의 권한을 httpd 프로세스가 읽고 쓸 수 있도록 조정하라.
httpd가 사용자 '<emphasis>nobody</emphasis>' 로 동작중이라고 가정하면 아래의 명령들을 수행하라:</para>

<para><screen>
  # cd /usr/local/apache/htdocs
  # chmod -R 755 DAVtest/
  # chown -R nobody DAVtest/
  # chgrp -R nobody DAVtest/
</screen></para>
</sect2>

<sect2><title>아파치를 재시작하기</title>

<para>마지막으로 <filename>httpd.conf</filename>에 있는 구문들을 검사하기 위해 아파치에 포함되어있는 구성시험루틴을 수행하여야 한다.</para>

<para><command># /usr/local/apache/bin/apachectl configtest</command></para>

<para>
만약 이 단계에서 오류를 받았다면 위에 설명한 단계를 올바로 수행하였는지를 검사하라.
오류 메시지를 분석할 수 없다면 주저하지 말고 오류메세지를 포함하여 나에게 보내라
(<ulink url="mailto:saqib@seagate.com">saqib@seagate.com</ulink>).
</para>

<para> 구성시험이 성공적이라면 아파치 웹서버를 시작하라: </para>

<para><command># /usr/local/apache/bin/apachectl restart</command></para>

<para>이제 우리는 LDAP인증을 포함한 WebDAV가 가능한 아파치 서버를 얻었다.</para>

<para>어떠한 질문이나 제안,추천, 칭찬, 의견, 불평이 있다면 그것들을 나(<ulink url="mailto:saqib@seagate.com">saqib@seagate.com</ulink>)에게 email로 보내라
</para>

<para><emphasis role="strong">Note:</emphasis>
아파치나 모듈을 설치하는 데에서 발생하는 문제점이나 기존의 아파치 서버를 WebDAV를 지원하도록 업그레이드 하려고 한다면 나와 상담을 하라.
</para>

<para> <emphasis role="strong">
<ulink url="http://www.stonebeat.org">WebDAV 지원및 토론 포럼</ulink></emphasis> </para>
</sect2>
</sect1>
</article>