<-
Apache > HTTP Server > Documentation > Version 2.2 > Platform Specific Notes

Microsoft Windows에서 아파치 사용법

가능한 언어:  en  |  ko 

이 문서는 최신판 번역이 아닙니다. 최근에 변경된 내용은 영어 문서를 참고하세요.

이 문서는 Microsoft Windows에서 아파치 2.0을 설치, 설정, 실행하는 방법을 설명한다. 잘못된 부분이 있거나 다른 방법으로 도움을 주려면, 버그 보고 페이지를 사용하길 바란다.

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

현재 Microsoft Windows 운영체제군의 버전 정책상 이 문서는 다음과 같이 구분한다:

top

운영체제 요구조건

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

운영체제에 설치한 TCP/IP 네트워크가 동작해야 한다. Windows 95에서 실행한다면, Winsock 2 업그레이드를 설치해야 한다. Windows 95용 Winsock 2는 여기에서 다운받을 수 있다.

Windows NT 4.0을 사용한다면 서비스팩 4의 TCP/IP 문제와 Winsock 문제가 다음 서비스팩에서 해결되었기때문에, 서비스팩 6을 설치하길 적극 권한다.

top

Windows용 아파치 다운로드

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

Windows에 설치하려면 확장자가 .msi인 Windows용 아파치 버전을 다운받아야 한다. 이 파일은 막바로 실행할 수 있는 아파치를 저장한 Microsoft 설치파일이다. 따로 소스코드만 묶어둔 .zip 파일이 있다. Microsoft Visual C++ (Visual Studio)을 사용하여 직접 아파치를 컴파일할 수도 있다.

top

Windows용 아파치 설치하기

설치하려면 Microsoft Installer 1.2 이상 버전이 필요하다. Windows 9x를 사용한다면 여기에서 Microsoft Installer를 2.0 버전으로 업그레이드할 수 있고, Windows NT 4.0과 2000을 사용한다면 여기에서 2.0 버전 업데이트를 구할 수 있다. Windows XP는 업데이트할 필요가 없다.

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

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

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

  2. 서버명 (Server Name). 서버의 전체 DNS 이름. 위의 경우 여기에 server.mydomain.net을 입력한다.

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

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

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

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

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

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

아파치 설치후 필요하다면 conf 하위디렉토리에 있는 설정파일을 수정해야 한다. 파일은 아파치를 설치한 디렉토리의 htdocs 하위디렉토리에 있는 문서를 서비스하도록 설정되있다. 실제로 아파치를 사용하기 전에 설정해야 할 옵션이 많다. 그러나 빨리 실행해볼 수 있도록 기본 설정파일로도 동작한다.

top

Windows용 아파치 설정하기

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

Windows용 아파치의 주된 차이점은:

top

아파치를 Service로 실행하기

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

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

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

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

apache -k install

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

apache -k install -n "MyServiceName"

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

apache -k install -n "MyServiceName" -f "c:\files\my.conf"

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

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

apache -k uninstall

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

apache -k uninstall -n "MyServiceName"

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

apache -n "MyServiceName" -t

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

apache -k start

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

apache -k stop

혹은

apache -k shutdown

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

apache -k restart

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

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

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

  1. 일반 도메인 사용자 계정을 만들고 암호를 기억하라.
  2. 새로 만든 계정에 서비스로 로그온운영 체제의 일부로 활동 권한을 부여한다. Windows NT 4.0에서는 User Manager for Domains에서 권한을 부여할 수 있고, Windows 2000과 XP에서는 아마도 "그룹 정책"을 사용해야 한다. "로컬 보안 설정" MMC 스냅인에서 직접 설정해줄 수도 있다.
  3. 새로 만든 계정이 Users 그룹에 속하는지 확인한다.
  4. 모든 문서와 스크립트 폴더에 (예를 들어 htdocscgi-bin) 대해 읽기 및 실행 (RX) 권한을 부여한다.
  5. 아파치 logs 디렉토리에 수정 (RWXD) 권한을 부여한다.
  6. Apache.exe 실행파일에 읽기 및 실행 (RX) 권한을 부여한다.
아파치 service를 실행하는 사용자에게 최소한 수정 (RWXD) 권한이 필요한 logs 하위디렉토리를 제외하고 Apache2 디렉토리 전체에 읽기 및 실행 (RX) 권한을 부여하는 것이 좋다.

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

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

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

Could not start the Apache2 service on \\COMPUTER
Error 1067; The process terminated unexpectedly.

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

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

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

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

top

아파치를 콘솔 프로그램으로 실행하기

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

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

apache

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

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

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

apache -k shutdown

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

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

apache -k restart

유닉스용 아파치에 익숙한 사람을 위해: 이 명령어는 kill -TERM pidkill -USR1 pid의 Windows판이다. 명령행 옵션 -k는 유닉스 kill 명령어 이름을 본따 지었다.

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

c:
cd "\Program Files\Apache Group\Apache2\bin"
apache

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

cd ..\logs
more < error.log

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

두 경우 모두 설정파일이 적절한 ServerRoot를 지정해야 한다.

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

apache -V

아파치는 다음 순서대로 ServerRoot를 찾는다:

  1. -C 명령행 옵션에 사용한 ServerRoot 지시어.
  2. -d 명령행 옵션.
  3. 현재 작업 디렉토리.
  4. 바이너리 설치를 했다면 설치할때 만든 registry 항목.
  5. 서버에 컴파일된 server root. 기본값은 /apache이고, apache -V를 실행하면 HTTPD_ROOT라는 항목에서 확인할 수 있다.

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

HKEY_LOCAL_MACHINE\SOFTWARE\Apache Group\Apache\2.0.43

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

HKEY_CURRENT_USER\SOFTWARE\Apache Group\Apache\2.0.43

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

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

키의 값은 ServerRoot 디렉토리이며, 이 디렉토리에 conf라는 하위디렉토리가 있다. 아파치를 시작하면 이 하위디렉토리에서 httpd.conf 파일을 읽는다. 이 파일에 나오는 ServerRoot 지시어가 레지스트리 키에 나온 디렉토리와 다르다면, 아파치는 레지스트리에서 얻은 값을 무시하고 앞으로 설정파일에 나온 디렉토리를 사용한다. 아파치 디렉토리나 설정파일을 다른 장소로 복사하면 반드시 httpd.conf 파일에 있는 ServerRoot 지시어를 그 위치로 수정하라.

top

정상적으로 설치되었는지 검사하기

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

http://localhost/

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

http://127.0.0.1/

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

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

가능한 언어:  en  |  ko 

top

Comments

Notice:
This is not a Q&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 mailing lists.