Windows용 Apache에서의 설정법입니다.

서버를 구축하여 사용하다 보면 아무나 접근하면 곤란한 디렉토리를 어떻게 처리해야할 지 난감합니다. 이럴 경우 Apache에서 이용할 수 있는 .htaccess와 .htpasswd 를 이용하여 본인의 웹페이지중 특정 디렉토리에 인증 기능을 사용할 수 있습니다. 물론 Apache 설정은 .htaccess 를 사용할 수 있도록 설정되어 있어야 합니다.[1]

홈페이지 도메인: http://www.mydomain.com/

서버의 홈페이지 루트의  절대경로: c:/apm/apache/htdocs/

이렇게 가정할 경우 http://www.mydomain.com/private/ 이라는 디렉토리에 인증 절차를 사용할 경우에 경로 c:/apm/apache/htdocs/private/ 에 다음과 같이 .htaccess 파일을 생성하여 줍니다.


AuthUserFile c:/apm/apache/htdocs/private/.htpasswd
AuthName "Private"
AuthType Basic

<Limit GET>
require valid-user
</Limit>

이 후에 커맨드 콘솔을 실행시켜 Apache가 설치되어 있는 디렉토리로 이동합니다.  그리고 다음과 같이 입력합니다. “htpasswd -c .htpasswd Username” << 인증에 사용할 Username 입니다. 위에서 .htaccess 파일에 기재한 AuthName이 아닙니다. 여기서는 sample로 입력해보겠습니다. 그러면 Password를 묻고 두 번 입력하면 현재 디렉토리에 .htpasswd 파일이 생성됩니다.[2] (저의 Apache 경로는 삭제하였습니다.)

이렇게 생성된 .htpasswd 파일을 .htaccess 파일이 있는 c:/apm/apache/htdocs/private/ 에 이동합니다.  그리고 이제 웹브라우저로  http://www.mydomain.com/private/ 에 접속을 해보면 인증창이 팝업됩니다.  이 때 위에서 설정한 Username과 Password를 입력하면 접속할 수 있습니다.

  1. Apache 설정 중 접근 디렉토리의 Allowoverride 옵션이 FileInfo 이상이어야 합니다. [back]
  2. 만일 특정 디렉토리의 사용자가 1인이 아닐 경우 -c 옵션을 빼고 “htpasswd .htpasswd Username” 으로 명령을 실행하면 복수의 사용자를 추가할 수 있습니다. [back]