Apache Version 1.3 (and up) What is it? ----------- Apache is an HTTP server designed as a plug-in replacement for the NCSA server version 1.3 (or 1.4). It fixes numerous bugs in the NCSA server and includes many frequently requested new features, and has an API which allows it to be extended to meet users' needs more easily. 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 <URL:http://www.apache.org/>. Installation ------------ NOTE: Windows users please see http://www.apache.org/docs/windows.html, or the htdocs/manual/windows.html file included with Apache. The following applies only to Unix users. Unless you grabbed a binary distribution of Apache, you must compile it for your specific platform. In order to compile it, you must set compile-time options (in particular, system type) for your system by editing a Configuration file, run a script which generates a Makefile and a small piece of C code, and then compile it. For instructions on compilation, see the file 'INSTALL' in the src/ directory. After compilation, you will have a binary called "httpd" in the src/ directory. If you received a binary distribution of apache, you should have this file already. The next step is to edit the configuration files for the server. In the subdirectory called "conf" you should find distribution versions of the three configuration files: srm.conf-dist, access.conf-dist, and httpd.conf-dist. Copy them to srm.conf, access.conf, httpd.conf respectively. First edit httpd.conf. This sets up general attributes about the server - the port number, the user it runs as, etc. Next edit the srm.conf file - this sets up the root of the document tree, special functions like server-parsed HTML or internal imagemap parsing, etc. Finally, edit the access.conf file to at least set the base cases of access. Documentation for all of these is located at <URL:http://www.apache.org/docs/>. Finally, make a call to httpd, with a -f to the full path to the httpd.conf file. I.e., the common case: /usr/local/etc/apache/src/httpd -f /usr/local/etc/apache/conf/httpd.conf And voila! The server should be running. By default the srm.conf and access.conf files are located by name - to specifically call them by other names, use the AccessConfig and ResourceConfig directives in httpd.conf. The Latest Version ------------------ Details of the latest version are in the apache project page (above). Licencing --------- Please see the file called LICENSE. Acknowledgements ---------------- We wish to acknowledge the following copyrighted works that make up portions of the Apache software: Portions of this software were developed at the National Center for Supercomputing Applications at the University of Illinois at Urbana-Champaign. This software contains code derived from the RSA Data Security Inc. MD5 Message-Diest Algorithm, including various modifications by Spyglass Inc., Caregie Mellon University, and Bell Communications Research, Inc. (Bellcore). This package contains software written and copyrighted by Henry Spencer. Please see the file called src/regex/COPYRIGHT. The NT port was started with code provided to the Apache Group by Ambarish Malpani of ValiCert, Inc. (www.valicert.com).
NOTE - About this File ====================== 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 <akosut@apache.org> - July 21, 1997 Integration with official Apache sources ======================================== Ben Laurie <ben@algroup.co.uk> Starting with a port to NT by Ambarish Malpani (see below). Things done ----------- 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. I have put out the sources on: 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. Stuff specific to the NT version: -------------------------------- 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) 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 (in the directory /usr/local/etc/httpd/conf): # Start up 3 servers (in case one dies, another can take its place, while # a new one is spawned StartServers 3 # Don't force a server to exit after it has served some number of requests. # If you do want server's to exit after they have run for a long time (to # help the system clean up after the process), please set this to a pretty # large number - like 10,000. What this will do, is, each child server will # exit after serving 10,000 requests, and another server will take its place. MaxRequestsPerChild 0 # 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 ----------------------- 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. Run the command nmake -f Makefile.nt in the src directory. TO INSTALL/RUN THE APACHE SERVER -------------------------------- 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) 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... 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 - 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. - 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). Hope this helps, Feedback is very, very welcome!!! Ambarish 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.
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.