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

Microsoft Windows용 아파치 컴파일

가능한 언어:  en  |  fr  |  ko 

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

아파치를 컴파일하기 전에 주의할 점이 많다. 미리 Microsoft Windows에서 아파치 사용법을 참고하라.

top

요구사항

아파치를 컴파일하려면 다음이 정상적으로 설치되야 한다:

top

명령행에서 컴파일하기

먼저 적당한 디렉토리에 아파치 배포본 압축을 푼다. 명령행 프롬프트를 열고 그 디렉토리로 cd한다.

Makefile.win 파일에 아파치 makefile 명령이 있다. Windows NT에서 releasedebug 컴파일하는 명령어는 각각 다음과 같다:

nmake /f Makefile.win _apacher

nmake /f Makefile.win _apached

두 명령어 모두 아파치를 컴파일한다. 후자는 결과파일에 디버깅 정보를 포함하여 버그를 찾고 문제를 추적하기 쉽게 한다.

top

Developer Studio Workspace IDE에서 컴파일하기

VC++의 Visual Studio 개발 환경을 사용하여 아파치를 컴파일할 수도 있다. 과정을 쉽게 하려고 Visual Studio workspace Apache.dsw를 제공한다. 이 workspace는 완전한 아파치 바이너리 배포본에 필요한 .dsp 프로젝트 목록을 담고있다. 또, 알맞은 순서로 컴파일하기위한 프로젝트간 의존성 정보도 포함한다.

Apache.dsw workspace를 열고 InstallBin을 (ReleaseDebug 중 원하는 것을) Active Project로 선택한다. InstallBin은 관련된 모든 프로젝트를 컴파일하고, 컴파일된 실행파일과 dll을 옮기는 Makefile.win을 호출한다. InstallBin의 Settings, General 탭, Build command line 항목을 수정하여 INSTDIR=을 변경할 수 있다. INSTDIR= 기본값은 /Apache2 디렉토리이다. (설치하지않고) 테스트로 컴파일만 해보려면 대신 BuildBin 프로젝트를 사용한다.

.dsp 프로젝트 파일은 Visual C++ 6.0 형식이다. Visual C++ 5.0 (97)에서도 이 파일을 사용할 수 있다. Visual C++ 7.0 (.net)은 Apache.dsw.dsp 파일들을 Apache.sln.msproj 파일들로 변환한다. .dsp 소스파일을 수정하면 반드시 .msproj 파일로 다시 변환하라! 그냥 VC++ 7.0 IDE에서 Apache.dsw를 다시 열기만 하면 된다.

또, Visual C++ 7.0 (.net) 사용자는 Build 메뉴, Configuration Manager 대화창에서 DebugRelease의 abs, mod_ssl, mod_deflate Solution modules 선택을 해제해야 한다. srclibopenssl이나 zlib 디렉토리가 있는 경우에만 nmake를 실행하거나 (이 모듈을 명시적으로 컴파일하는) IDE BinBuild 대상을 사용하여 모듈을 컴파일 할 수 있다.

Export한 .mak 파일들이 혼란스럽지만, Visual C++ 5.0 사용자가 mod_ssl, abs (SSL을 지원하는 ab), mod_deflate를 컴파일할때 필요하다. VC++ 7.0 (.net) 사용자에게도 binenv 보다 nmake를 사용하면 컴파일이 더 빠르다. VC++ 5.0이나 6.0 IDE에서 전체 프로젝트를 컴파일하고, Project 메뉴의 Export for all makefiles를 사용하라. 동적으로 자동 생성하는 대상을 모두 컴파일하고 올바른 의존성 정보를 얻기위해서는 먼저 프로젝트를 컴파일해야 한다. 다음 명령어를 사용하여 경로를 수정하면 어떤 경로에서도 컴파일할 수 있다:

perl srclib\apr\build\fixwin32mak.pl

httpd 소스 최상위 디렉토리에서 명령어를 실행해야 한다. 현재 디렉토리와 하위디렉토리에 있는 모든 .mak.dep 프로젝트파일을 수정하고, .dsp를 고려하여 파일시간을 수정한다.

프로젝트파일을 다듬어서 패치를 보낸다면, 프로젝트파일을 Visual Studio 6.0 형식으로 만들어야 한다. 변경은 간단하고, VC++ 5.0에서 7.0까지 모든 환경에서 인식하는 최소한의 컴파일 옵션과 링커 옵션을 사용해야 한다.

top

프로젝트 구성요소

Apache.dsw workspace와 makefile.win nmake 스크립트는 다음 순서대로 아파치 서버 .dsp 프로젝트를 컴파일한다:

  1. srclib\apr\apr.dsp
  2. srclib\apr\libapr.dsp
  3. srclib\apr-util\uri\gen_uri_delims.dsp
  4. srclib\apr-util\xml\expat\lib\xml.dsp
  5. srclib\apr-util\aprutil.dsp
  6. srclib\apr-util\libaprutil.dsp
  7. srclib\pcre\dftables.dsp
  8. srclib\pcre\pcre.dsp
  9. srclib\pcre\pcreposix.dsp
  10. server\gen_test_char.dsp
  11. libhttpd.dsp
  12. Apache.dsp

또, modules\ 하위디렉토리 아래 대부분의 모듈에는 프로젝트파일이 있다.

support\ 디렉토리에는 아파치를 실행하는데 필요하지는 않지만, 관리자가 아파치를 검사하거나 암호파일과 로그파일을 관리하는데 사용할 추가 프로그램들의 프로젝트파일이 있다. Windows 전용 지원 프로그램은 support\win32\ 디렉토리에 따로 있다.

  1. support\ab.dsp
  2. support\htdigest.dsp
  3. support\htpasswd.dsp
  4. support\logresolve.dsp
  5. support\rotatelogs.dsp
  6. support\win32\ApacheMonitor.dsp
  7. support\win32\wintty.dsp

아파치를 컴파일하면 server root 디렉토리에 설치해야 한다. 기본값은 같은 디스크의 \Apache2 디렉토리이다.

컴파일하고 모든 파일을 원하는 폴더 dir에 자동으로 설치하려면 다음 nmake 명령어중 하나를 사용한다:

nmake /f Makefile.win installr INSTDIR=dir

nmake /f Makefile.win installd INSTDIR=dir
    

INSTDIRdir 아규먼트는 설치디렉토리를 뜻한다. 생락하면 \Apache2에 아파치를 설치한다.

다음과 같이 설치한다:

개발중인 아파치 버전을 컴파일할때 경고

.dsp 파일은 release마다 새로 만들어진다. 개발자의 시간낭비를 막기위해 .mak 파일은 새로 만들지 않는다. 그러므로 NMAKE 명령어를 사용하여 새로운 .dsp 프로젝트파일을 컴파일할 수 없다. 프로젝트에서 직접 모든 .mak 파일을 export해야 한다. Microsoft Developer Studio 환경에서 컴파일한다면 이 작업이 필요없다.
또, makefile을 export하기 전에 BuildBin 프로젝트를 (혹은 _apacher_apached 명령행 대상) 컴파일하면 매우 도움이 된다. 컴파일중에 많은 파일이 자동으로 만들어진다. 전체를 컴파일해야만 정상적으로 컴파일할때 필요한 의존파일을 모두 만든다.

배포용 .mak 파일을 만드려면 항상 .mak (혹은 .dep)에서 Platform SDK 등의 의존성을 점검하라. DevStudio\SharedIDE\bin\ (VC5)나 DevStudio\Common\MSDev98\bin\ (VC6) 디렉토리에는 모든 예외 목록이 담긴 sysincl.dat 파일이 있다. 이 파일에 의존성 정보를 추가한다 (sys/time.hsys\time.h와 같이, 경로는 슬래쉬를 사용한 것과 백슬래쉬를 사용한 것 모두를 추가한다). 배포할 .mak 파일에 현재 컴퓨터에만 해당하는 설치경로가 있다면 컴파일이 완전히 실패한다. 그러므로 srclib/apr/build/fixwin32mak.pl을 실행해하여 .mak 파일에 있는 절대경로를 없애야 한다.

가능한 언어:  en  |  fr  |  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.
Comments are disabled for this page at the moment.