pcs 97/10/22 06:16:36
Modified: . README.NT Log: Make this readme into a proper file instead of a series of out-of-date notes. Format is the same as the existing Unix "README" file. Add various documentation about installation, current bugs, etc. Revision Changes Path 1.4 +114 -145 apachen/README.NT Index: README.NT =================================================================== RCS file: /export/home/cvs/apachen/README.NT,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- README.NT 1997/08/23 04:48:48 1.3 +++ README.NT 1997/10/22 13:16:36 1.4 @@ -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 <[EMAIL PROTECTED]> - 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 <[EMAIL PROTECTED]> - -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 [EMAIL PROTECTED] - - -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.