O'Reilly Book Excerpts: Apache: The Definitive Guide, 2nd Edition
Apache Under Windows
An excerpt from Chapter 1, "Getting Started," of Apache: The Definitive Guide, 2nd Edition. Covers installing an Apache binary under Windows and, for more adventurous souls, compiling from source.
In our view, Win32 currently comprises Windows 95, Windows 98, and NT. As far as we know, these different versions are the same as far as Apache is concerned, except that under NT, Apache can also be run as a service. Performance under Win32 may not be as good as under Unix, but this will probably improve over coming months.
Since Win32 is considerably more consistent than the sprawling family of Unices, and since it loads extra modules as DLLs at runtime, rather than compiling them at make time, it is practical for the Apache Group to offer a precompiled binary executable as the standard distribution. Go to http://www.apache.org/dist and click on the version you want, which will be in the form of a self-installing .exe file (the .exe extension is how you tell which one is the Win32 Apache). Download it into, say, c:\temp and then run it from the Win32 Start menu's Run option.
The executable will create an Apache directory, C:\Program Files\Apache, by default. Everything to do with Win32 Apache happens in an MS-DOS window, so get into a window and type:
> cd c:\<apache directory>
and you should see something like this:
Volume in drive C has no label Volume Serial Number is 294C-14EE Directory of C:\apache . <DIR> 21/05/98 7:27 . .. <DIR> 21/05/98 7:27 .. DEISL1 ISU 12,818 29/07/98 15:12 DeIsL1.isu HTDOCS <DIR> 29/07/98 15:12 htdocs MODULES <DIR> 29/07/98 15:12 modules ICONS <DIR> 29/07/98 15:12 icons LOGS <DIR> 29/07/98 15:12 logs CONF <DIR> 29/07/98 15:12 conf CGI-BIN <DIR> 29/07/98 15:12 cgi-bin ABOUT_~1 12,921 15/07/98 13:31 ABOUT_APACHE ANNOUN~1 3,090 18/07/98 23:50 Announcement KEYS 22,763 15/07/98 13:31 KEYS LICENSE 2,907 31/03/98 13:52 LICENSE APACHE EXE 3,072 19/07/98 11:47 Apache.exe APACHE~1 DLL 247,808 19/07/98 12:11 ApacheCore.dll MAKEFI~1 TMP 21,025 15/07/98 18:03 Makefile.tmpl README 2,109 01/04/98 13:59 README README~1 TXT 2,985 30/05/98 13:57 README-NT.TXT INSTALL DLL 54,784 19/07/98 11:44 install.dll _DEISREG ISR 147 29/07/98 15:12 _DEISREG.ISR _ISREG32 DLL 40,960 23/04/97 1:16 _ISREG32.DLL 13 file(s) 427,389 bytes 8 dir(s) 520,835,072 bytes free
Apache.exe is the executable, and ApacheCore.dll is the meat of the thing. The important subdirectories are as follows:
- Where the Config file lives.
- Where the logs are kept.
- Where you put the material your server is to give clients. The Apache manual will be found in a subdirectory.
- Where the runtime loadable DLLs live.
After 1.3b6, leave your original versions of files in these subdirectories alone, while creating new ones with the added extension .default--which you should look at. We will see what to do with all of this in the next chapter.
See the file README-NT.TXT for current problems.
Compiling Apache Under Win32
The advanced user who wants, perhaps, to write his or her own modules (see ), will need the source code. This can be installed with the Win32 version by choosing Custom installation. It can also be downloaded from the nearest mirror Apache site (start at http://apache.org/ ) as a .tar.gz file containing the normal Unix distribution and can be unpacked into an appropriate source directory using, for instance, 32-bit WinZip, which deals with .tar and .gz format files as well as .zip. You will also need Microsoft's Visual C++ Version 5. Once the sources and compiler are in place, open an MS-DOS window and go to the Apache src directory. Build a debug version and install it into \Apache by typing:
> nmake /f Makefile.nt _apached
> nmake /f Makefile.nt installd
or build a release version by typing:
> nmake /f Makefile.nt _apacher
> nmake /f Makefile.nt installr
This will build and install the following files in and below \Apache\:
- The executable
- The main shared library
- Seven optional modules
- Empty config directory
- Empty log directory
The directives described in the rest of the book are the same for both Unix and Win32, except that Win32 Apache can load module DLLs. They need to be activated in the Config file by the LoadModule directive. For example, if you want status information, you need the line:
LoadModule status_module modules/ApacheModuleStatus.dll
Notice that wherever filenames are relevant in the Config file, the Win32 version uses forward slashes ("/") as in Unix, rather than backslashes ("\") as in MS-DOS or Windows. Since almost all the rest of the book applies to both Win32 and Unix without distinction between then, we will use ("/") in filenames wherever they occur.
Apache for Win32 can also load Internet Server Applications (ISAPI extensions).