You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wiki-changes@httpd.apache.org by Apache Wiki <wi...@apache.org> on 2008/07/04 22:08:05 UTC

[Httpd Wiki] Update of "Win32VC9Build" by tdonovan

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Httpd Wiki" for change notification.

The following page has been changed by tdonovan:
http://wiki.apache.org/httpd/Win32VC9Build

The comment on the change is:
Windows VC9 build instructions 

New page:
= Building Apache with the Microsoft Windows 2008 SDK =

[http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF Windows SDK for Windows Server 2008 and .NET Framework 3.5] contains a command-line compiler suitable for building Apache 2.2.9 on Windows XP or later.

Despite the ''"2008"'' name - this freely available SDK is appropriate to use on Windows Server 2003, Windows Server 2008, Windows Vista, and Windows XP.

This SDK contains the Visual C++ 2008 command-line compiler (a.k.a. VC9), the MASM v9.0 assembler, and the Windows libraries needed to build and run Apache.

These are the steps to build Apache 2.2.9 with OpenSSL 0.9.8h and Zlib 1.2.3 using the VC9 command-line compiler included in this Windows SDK:

== Tools Needed to Build httpd ==

Install the Windows SDK for Windows Server 2008 and .NET Framework 3.5 (approx: 450mb)
|| Windows 2008 SDK || http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF ||

Install Perl and several GNU utilities: tar, gzip, wget, and awk. These are tools which are needed to build Apache:
|| [http://www.activestate.com/Products/activeperl ActiveState Perl] ||      http://www.activestate.com/store/download.aspx?prdGUID=81fbce82-6bd5-49bc-a915-08d58c2648ca ||
|| GNU tar ||      http://gnuwin32.sourceforge.net/packages/gtar.htm ||
|| GNU gzip ||      http://gnuwin32.sourceforge.net/packages/gzip.htm ||
|| GNU wget ||      http://gnuwin32.sourceforge.net/packages/wget.htm ||

== Setup the build environment ==

Open a command window and set up the development environment:
{{{
"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
}}}

Add Perl and the GNU utilities to your PATH environment variable:
{{{
PATH=%PATH%;C:\Perl\bin;C:\Program Files\GnuWin32\bin
}}}

== Download the source code ==

==== Download and extract the Apache httpd version 2.2.9 Windows source (not the Unix source) ====

{{{
WGET http://www.apache.org/dist/httpd/httpd-2.2.9-win32-src.zip
}}}

Open httpd-2.2.9-win32-src.zip and extract it, creating a httpd-2.2.9 directory

==== Download and extract the Zlib version 1.2.3 source into httpd-2.2.9\srclib\zlib ====

{{{
CD   httpd-2.2.9\srclib
WGET http://www.zlib.net/zlib-1.2.3.tar.gz
GZIP -d  zlib-1.2.3.tar.gz
TAR  xf  zlib-1.2.3.tar
RENAME   zlib-1.2.3   zlib
}}}

==== Download and extract the OpenSSL version 0.9.8h source, into httpd-2.2.9\srclib\openssl ====
{{{
CD   httpd-2.2.9\srclib
WGET http://www.openssl.org/source/openssl-0.9.8h.tar.gz
GZIP -d  openssl-0.9.8h.tar.gz
TAR  xf  openssl-0.9.8h.tar
RENAME   openssl-0.9.8h   openssl
}}}

== Build Zlib ==

{{{
CD  httpd-2.2.9\srclib\zlib
ML /coff /Zi /c contrib\masm686\match.asm
NMAKE -f win32\Makefile.msc  LOC="-D_CRT_SECURE_NO_DEPRECATE /wd4996 -DASMV" OBJA="match.obj"
MT -manifest zlib1.dll.manifest -outputresource:zlib1.dll;2
}}}

== Build OpenSSL ==


   '''For OpenSSL version 0.9.8h ONLY: '''
   ''Edit the file httpd-2.2.9\srclib\openssl\crypto\perlasm\x86ms.pl and remove line 273. Line 273 contains the single word "$extra". This is a known problem with OpenSSL 0.9.8h, and should be fixed in future versions. ref: OpenSSL bug 1681, described [http://www.mail-archive.com/openssl-dev@openssl.org/msg24058.html here] and [http://groups.google.com/group/mailing.openssl.dev/browse_thread/thread/0919a6ec791206a2 here]''

{{{
CD  httpd-2.2.9\srclib\openssl
PERL Configure VC-WIN32  enable-camellia  disable-idea
ms\do_masm
NMAKE -f ms\ntdll.mak
}}}

'''Note:''' The IDEA algorithm is disabled because it is built by default with OpenSSL 0.9.8.  [http://www.mediacrypt.com/_contents/10_idea/101030_ea_pi.asp The IDEA algorithm is patented] for commercial use.  Camellia and the other OpenSSL algorithms which are built by default are no longer encumbered by patents.

'''Note:''' There are significant restrictions and prohibitions on the use and distribution of strong cryptography throughout the world.  OpenSSL includes strong cryptography controlled by both export regulations and domestic law.


== Build and install Apache httpd ==

{{{
CD  httpd-2.2.9
NMAKE -f Makefile.win installr
}}}
This installs Apache 2.2.9 into C:\Apache22.  You can add  {{{INSTDIR=directory}}} to the NMAKE command to choose a different installation directory.  For example:  {{{NMAKE -f Makefile.win  INSTDIR=D:\Apache2  installr}}}

If you copy Apache to another machine, remember to install the [http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF Microsoft Visual C++ 2008 Redistributable Package] before running it.