You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Paul Sutton <pa...@ukweb.com> on 1997/10/21 15:04:13 UTC

README.NT

The README.NT file we include with the source distributions is out of date
and reads like a set of notes (which is what it was). It isn't really a
README for the Windows version. This patch makes it into a README in the
style of the existing README for Unix systems. It is also brought
up-to-date for 1.3b2, and now documents (briefly) how to compile and
install Apache for Windows. It could also now be included as the README
with the binaries version. 

//pcs

Index: README.NT
===================================================================
RCS file: /export/home/cvs/apachen/README.NT,v
retrieving revision 1.3
diff -u -r1.3 README.NT
--- README.NT	1997/08/23 04:48:48	1.3
+++ README.NT	1997/10/21 13:00:42
@@ -1,121 +1,57 @@
-NOTE - About this File
-======================
+                              Apache for Windows
+                             Version 1.3 (and up)
 
-This file contains development information on Apache for Windows, not all
-of which is relevant to the current version. For information on
-installation and use of Apache for Windows, please see
-http://www.apache.org/docs/windows.html, also available as
-htdocs/manual/windows.html with this distribution.
-
-Alexei Kosut <ak...@apache.org> - July 21, 1997
-
-WARNING: Apache on NT has not yet been optimized for performance.
-Apache still performs best, and is most reliable on Unix platforms.
-Over time we will improve NT performance. Folks doing comparative reviews
-of webserver performance are asked to compare against Apache on a Unix
-platform such as Solaris, FreeBSD, or Linux.
-
-Integration with official Apache sources
-========================================
-
-Ben Laurie <be...@algroup.co.uk>
-
-Starting with a port to NT by Ambarish Malpani (see below).
-
-Things done
+What is it?
 -----------
 
-1. Move NT-specific stuff to the NT subdirectory
-
-2. Eliminate code under incompatible licenses.
-
-3. Rearrange changes to minimise the patch.
-
-4. Add pregenerated modules.c to NT dir, for now.
-
-5. Include nt/ files directly, rather than building a library.
-
-6. Remove gratuitous layout changes.
-
-7. Fold in missing updates.
-
-8. Add in mod_info.c (not tested).
-
-9. Made a start on mod_rewrite.c, brought back into line with current source.
-
-10. Remove copy of environment in util_script.c, presumably introduced through
-    a misunderstanding.
-
-11. Replace crypt with a null function.
-
-Things to do
-------------
-
-1. Make regex generate *.ih headers.
-
-2. Use Configuration to generate modules.c.
-
-3. Consider including regex/ directly, rather than building a library.
-
-4. Make multithread routines null #defines rather than null functions when
-   not multithreading.
-
-5. Change __declspec(thread) to APACHE_TLS throughout.
-
-6. Tidy up http_main.c.
-
-7. Update OS/2 comments to mention Win32 where appropriate
-
-8. Abstract log children!
-
-9. Wonder why "bytes" in mod_negotiation is a float?
-
-10. Fix the 3 zillion warnings we get under VC++.
-
-11. Replace crypt().
-
-Apache on Windows NT
-====================
-
-Ambarish Malpani
-ambarish@valicert.com
-
-
-This document consists of my goobly-gook, over and above all the wonderful
-Apache related writeups available in other places (including this directory).
-
-Finally, a Web server that can run on Windows NT Workstation and Windows 95
-and a FREE proxy server!!!
-
-This is a port of Apache to Windows NT. I have basically used the sources
-from Apache 1.2b10.
+Apache is an HTTP server, originally designed for Unix systems. This
+is the first release of Apache for Windows systems.  Like the Unix
+version, it includes many frequently requested new features, and has
+an API which allows it to be extended to meet users' needs more
+easily. It also allows ISAPI extensions.
+
+Documentation
+-------------
+
+The documentation available as of the date of this release is also
+included, in HTML format, in the htdocs/manual/ directory. For the
+most up-to-date documentation, visit us on the WWW, at
+http://www.apache.org/. For Window's specific information, see
+http://www.apache.org/docs/windows.html.
+
+WARNING
+-------
+
+Apache on NT has not yet been optimized for performance.  Apache still
+performs best, and is most reliable on Unix platforms.  Over time we
+will improve NT performance. Folks doing comparative reviews of
+webserver performance are asked to compare against Apache on a Unix
+platform such as Solaris, FreeBSD, or Linux.
 
-I have put out the sources on:
+Changes for the Windows version
+-------------------------------
 
-ftp://valicert.com/pub/apache_1_2b10_nt.tar.gz. These same sources will
-compile on Unix, but you will need to remove the \r from the \r\n at
-the end of ever text file.
+1. It is multithreaded
 
-Stuff specific to the NT version:
---------------------------------
+2. It can run as a service (run apache -i to install the service)
+   or as a regular program (run apache -s to avoid waiting for
+   the program to hook up to the Service Manager). On Windows 95
+   it runs as a regular program.
 
-1. It is multithreaded
-2. It can run as a service (execute apache -i to install the service)
-    or as a regular program (execute apache -s to avoid waiting for
-    the program to hook up to the Service Manager).
 3. It executes as multiple servers (this allows for some fault tolerance -
-    if a server dies, another one takes its place. Also after dealing
-    with a certain number of requests, a server voluntarily exits, to
-    clean up any resources it might have forgotten to free up).
-4. cgi scripts work.
-
-As a default, the daemon looks for the httpd.conf file at
-/usr/local/etc/httpd/conf ON THE DRIVE WHERE THE EXECUTABLE exists.
-
-There are a couple of new options:
-ThreadsPerChild (number of threads each server spawns)
-ExcessRequestsPerChild (number of additional requests a server responds
-                to, after it decides to exit)
+   if a server dies, another one takes its place. Also after dealing
+   with a certain number of requests, a server voluntarily exits, to
+   clean up any resources it might have forgotten to free up).
+
+By default Apache uses the directory \Apache for the ServerRoot ON THE
+DRIVE WHERE THE EXECUTABLE EXISTS. This can be changed with the -d
+command line argument.
+
+There are a couple of new directives:
+
+ThreadsPerChild         - Number of threads each server spawns)
+ExcessRequestsPerChild  - Number of additional requests a server responds
+                          to, after it decides to exit
 
 Due to the behavior of NT when multiple processes have a socket open
 for listening, I would recommend that you set the following in httpd.conf
@@ -135,59 +71,92 @@
 # Number of concurrent threads at a time (set the value to more or less
 # depending on the responsiveness you want and the resources you wish
 # this server to consume).
-
 ThreadsPerChild 20
 
-TO BUILD THE EXECUTABLE
------------------------
+Compilation
+-----------
+
+If you have downloaded the source code you will need to compile
+it. This requires Microsoft Visual C++ version 5.0 or higher. 
+
+To compile Apache, run the command
+
+   nmake -f Makefile.nt _apacher
+
+in the src directory. To install Apache to the \Apache directory, run
+
+   nmake -f Makefile.nt installr
+
+You cannot easily set a different installation directory. You can also
+build debug versions of Apache, with the targets "_apached" and
+"installd".
+
+To build Apache within MSVC, you will need to build the following
+projects and Makefiles:
+
+   os/win32/ApacheOS.dsp
+   src/Apache.dsp
+   src/ApacheCore.dsp
+   regex/Makefile.mak
 
-You will need access to Microsoft's Visual C++ compiler. I have used
-version 4.2. You might be able to get away with earlier/later versions.
+Additional modules can also be built using project files in the os/win32
+directory.
 
-Run the command nmake -f Makefile.nt in the src directory.
+Installing a Binary Release
+---------------------------
 
+The binary release is not yet available.
 
-TO INSTALL/RUN THE APACHE SERVER
---------------------------------
+Running Apache
+--------------
+
+On NT, Apache can run as either a service or a regular executable. 
+
+To run as an executable, simply run \Apache\apache from the command
+line. This will print the version number, then wait to serve
+requests. To stop Apache, press Control-C to stop it running. Note
+that there may be a delay between typing the command line and Apache
+being ready to accept requests. This method also works on Windows 95.
+
+To run as a service, first install the service with
 
-You can run the Apache either as a regular executable, or as a service.
-To run Apache as a regular executable:
-apache -s            (the -s tells it not to connect to the service manager)
+  \Apache\apache -i
 
-To run Apache as a service (recommended), you need to first install the
-apache and then start the service.
-apache -i            (installs the service)
-Go to the Control Panel, start up the Services item, select the Apache service
-            click on the Start button.
-Note: Apache will be started automatically when you reboot your machine. If
-you want to change this behavior, you can change the startup options by
-clicking on Control Panel->Services->Startup...
+You can now start the Apache service within the service manager
+(Control Panel, Services), and set it to start automatically at boot
+time if required. You can also stop Apache from the manager.
 
+To remove the Apache service, run
+
+  \Apache\apache -u
+
+Known Problems
+--------------
 
-Tasks Not Yet Done
-------------------
 - The User directive is not supported. If you run apache as a service,
-you can change the user it runs as by going to Control Panel->Services->Startup
+  you can change the user it runs as by going to 
+  Control Panel->Services->Startup
+
 - suexec doesn't work
+
 - RFC 1413 not yet ported
 
-Known Problems
---------------
 - If you have a very busy server, when a server child process exits,
-any connections made to that child process that have not yet been
-accepted by it are aborted.
+  any connections made to that child process that have not yet been
+  accepted by it are aborted.
+
 - Problem with very long running cgi scripts (their output is garbled?)
+
 - There are problems with the way the program handles cgi scripts that
-it doesn't successfully spawn.
-- On Windows 95, there seems to be a problem spawning cgi scripts, since
-Windows 95 seems to require \'s in the path (unlike NT, which accepts /'s).
+  it doesn't successfully spawn.
+
+- On Windows 95, there is a problem spawning cgi script since
+  Windows 95 requires \'s in the path (unlike NT, which accepts /'s).
 
-Hope this helps,
-Feedback is very, very welcome!!!
+- regex does not generate *.ih headers.
 
-Ambarish
+- Multithreadng is not properly abstracted
 
+- htpasswd passwords are stored in plain text because Windows lacks a
+  crypt() function
 
-Legal stuff: All copyrights are properties of their respective owners. This
-source code is being returned to the Apache group and will hopefully become
-part of their regular distribution over time.