<strong>Platform Specific Notes</strong>
</td></tr><tr><td>
<A HREF="platform/windows.html">Microsoft Windows</A>
-</td></tr><tr><td>
-<A HREF="platform/">Other Platform Specific Notes</a>
</td></tr></table>
</td>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Installing Apache on TPF</TITLE>
-</HEAD>
-
-<BODY>
-
-<blockquote><strong>Warning:</strong>
-This document has not been updated to take into account changes
-made in the 2.0 version of the Apache HTTP Server. Some of the
-information may still be relevant, but please use it
-with care.
-</blockquote>
-
-<H1 ALIGN="center">
- <A NAME="top">Installing the Apache 1.3 HTTP Server on TPF</A>
-</H1>
-<HR>
-<CENTER>[ <A HREF="#download">Download</A>
- | <A HREF="#compilation">Compilation</A>
- | <A HREF="#installation">Installation</A>
- | <A HREF="#visualage">VisualAge</A> ]
-</CENTER>
-<HR>
-<BR>
-
-<P>
-This document outlines the steps needed to install Apache onto a TPF system.
-</P>
-<P>
-You should first read
-htdocs/manual/<A HREF="readme-tpf.html">readme-tpf.html</A>
-for basic information on the port of Apache to TPF including required PUT level
-and supported functions & modules.
-</P>
-<H2 align=center><A NAME="download">Download</A></H2>
-Releases of the Apache server are compressed into a "tarball" file and stored on the Apache web site.
-You will need to choose a version and download the corresponding tarball to your PC.
-Additionally the source code from the tarball will need to be copied onto an MVS OS/390 Open Edition machine
-(later referred to simply as "Open Edition") for compiling.
-So here are all the details on how to get Apache and how to get it where it needs to be:
-<ol>
- <li><A HREF="http://www.apache.org/dist/httpd/">Download</A>
- the gzipped Apache files (the "tarball") to your PC.
- The file name on the web site will be something like <i>apache_1.3.x.tar.gz</i>.
- <br><font color=red size=4>TIP: </font>Be sure to keep the <i>.tar.gz</i> extension
- when choosing the name of the PC file.
- <br><br>
- <li>Decompress the tarball on your PC using WinZip or some other PC decompression tool.
- <br><font color=red size=4>TIP: </font>If you are using WinZip verify that the
- <EM>"TAR File Smart CR/LF Conversion"</EM> option (under Options, Configuration) is NOT checked.<br>
- This is what you can expect if you use WinZip:
- <ul>
- <li>open the tarball with WinZip (this can usually be done simply by double-clicking
- on the downloaded tarball)
- <li>you will be told that the archive contains one file (such as <i>apache_1.3.x.tar</i>) -
- allow WinZip to decompress it to a temporary folder
- <li>extract the archived files onto your PC -
- you'll be using files from the <tt>conf, htdocs,</tt> and <tt>icons</tt> directories later in the install phase
- </ul>
- <br>
- <li>FTP the tarball to your Open Edition machine using binary mode:
- <ul>
- <li>activate FTP in an MSDOS window: <tt><b>ftp <i>your.open.edition.machine.com</i></b></tt>
- <li>sign in
- <li>set mode to binary: <tt><b>binary</b></tt>
- <li>send the file to Open Edition:<br>
- <tt><b> send <i>c:\downloaded_filename.tar.gz open_edition_filename.tar.gz</i></b></tt>
- <li>exit FTP: <tt><b>bye</b></tt>
- </ul>
- <br><font color=red size=4>TIP: </font>
- Open Edition and UNIX file names are case sensitive. If you use an NFS client to transfer files
- from your PC to Open Edition (instead of using FTP as described above) verify that the NFS drive will transfer the
- file names with upper/lower case preserved.<br>
- <br>
- <li>Decompress the gzipped file on Open Edition: <tt><b>gunzip <i>open_edition_filename.tar.gz</i></b></tt>
- <br>Note that the <i>.tar.gz</i> file will be replaced by the gunzipped <i>.tar</i> archive file.
- <br><br>
- <li>Extract the archived files necessary for compiling Apache:
- <ul>
- <li><tt><b>pax -rvkf <i>open_edition_filename.tar</i> -o from=ISO8859-1,to=IBM-1047 "*/src"</b></tt>
- <li>switch to the source code subdirectory of the newly extracted apache directory: <tt><b>cd <i>apache-1.3</i>/src</b></tt>
- <li>remove unnecessary subdirectories:
- <tt><b>rm -r os/bs2000 os/mpeix os/netware os/os2 os/os390 os/win32</b></tt>
- </ul>
-</ol>
-<br>
-<H2 align=center><A NAME="compilation">Compilation</A></H2>
-<P>
-Apache supports the notion of "optional modules". However,
-the server has to know which modules are compiled into it. In order for
-those modules to be effective, it is necessary to generate a short bit of
-code (modules.c) which simply has a list of them. If you are using the <tt>Configure</tt> utility
-and <tt>make</tt>, modules.c and other necessary files will be created for you automatically.
-</P>
-<P>
-The provided scripts assume a c89 compiler and have only been tested on an
-Open Edition environment. If you are using a platform other that
-Open Edition you may need to modify src/os/tpf/TPFExport and src/Configure
-to match your environment.
-</P>
-<font color=red size=4>TIP: </font>
-Editing files on your PC prior to moving them to Open Edition may result
-in the loss/addition of unprintable characters. Files of concern include shell
-scripts and src/Configuration. The most common problems are with
-tab characters and CR/LF characters. Most editors will handle the CR/LF problem correctly
-but none seem to handle tab characters. If you need to edit files prior to moving them to Open Edition,
-edit them in a UNIX editor such as vi or emacs.<br>
-<P>
-Note that Open Edition commands in this section are shown in
-<TT><STRONG>bold</STRONG></TT>,
-are case sensitive, and must be made from the "src" directory.
-</P>
-<OL>
-<LI>Overlay src/Configuration with src/Configuration.tmpl:
- <TT><STRONG>cp Configuration.tmpl Configuration</STRONG></TT>
- <BR><BR>
-<LI>Edit src/Configuration. It contains the list and settings
- of various "Rules" and an additional section at the bottom that determines
- which modules to compile:
- <BR><BR>
- <UL>
- <LI>Adjust the Rules and <TT>EXTRA_CFLAGS|LIBS|LDFLAGS|INCLUDES</TT>
- if you feel so inclined.
- <BR><BR>
- <LI>Comment out (by preceding the line with a "#") lines corresponding
- to those modules you DO NOT wish to include.
- <BR><BR>
- <LI>Uncomment (by removing the initial "#", if present) lines
- corresponding to those optional modules you wish
- to include or add new lines corresponding to any custom modules
- you have written.
- The htdocs/manual/<A HREF="readme-tpf.html">readme-tpf.html</A>
- document lists the modules that have been tested on TPF.
- </UL>
- <br>The modules placed in the Apache distribution are the ones that have been
- tested and are used regularly by various members of the Apache development
- group. Additional modules contributed by members or third parties with specific
- needs or functions are available at
- <A
-HREF="http://www.apache.org/dist/httpd/contrib/modules/">http://www.apache.org/dist/httpd/contrib/modules/</A>.
- There are instructions on that page for linking these modules into the core Apache
- code.
- <BR><BR>
-<LI>Set the TPF environment variables:
- <TT><STRONG>. os/tpf/TPFExport</STRONG></TT>
- <BR>
- (The initial period and blank on the command are required to ensure
- the environment variables exist beyond the scope of the shell script.)
- This script will set the environment variables required to compile the
- programs for TPF. Verify that the export variables are valid for your
- installation, in particular, the system include file directories. The
- system include files must reside on your Open Edition system in the
- appropriate file structure similar to /usr/include and /usr/include/sys.
- DO NOT modify the <TT>TPF=YES</TT> export variable. If this is
- changed, the "Configure" script will not recognize TPF.
- <BR><BR>
-<LI>Run the "Configure" script:
- <TT><STRONG>Configure</STRONG></TT>
- <BR>
- This generates modules.c, include/ap_config_auto.h, and necessary Makefiles:
- <PRE>
- Using config file: Configuration
- Creating Makefile
- + configured for TPF platform
- + setting C compiler to c89
- + setting C pre-processor to c89 -E
- + checking for system header files
- + adding selected modules
- + checking sizeof various data types
- Creating Makefile in support
- Creating Makefile in regex
- Creating Makefile in os/tpf
- Creating Makefile in ap
- Creating Makefile in main
- Creating Makefile in modules/standard
- $ _
- </PRE>
- If you want to maintain multiple configurations, you can
- say, <EM>e.g.</EM>,
- <BR>
- <TT><STRONG>Configure -file Configuration.ai</STRONG></TT>
- <BR>
- <PRE>
- Using config file: Configuration.ai
- Creating Makefile
- + configured for <whatever> platform
- + setting C compiler to <whatever>
- et cetera
- </PRE>
- If you receive an error such as "<TT>Configure 146: FSUM7351 not found</TT>"
- the most likely explanation is that one or more of the <tt>make</tt> related
- files were edited on a non-UNIX platform, corrupting the end-of-line marks.
- Verify that lines ending with "\" in the flagged file do not have trailing
- spaces. Using the vi editor and the sample error above as an example...
- <BR><BR><PRE>
- pull up the flagged file: <STRONG>vi Configure</STRONG>
- turn on punctuation: <STRONG>:set list</STRONG>
- go to the line in question: <STRONG>146G</STRONG>
- or find a line with a "\": <STRONG>/\\</STRONG></PRE>
- The end of line should display as "<TT>\$</TT>". If it is displayed as
- "<TT>\ $</TT>" (with a blank between \ and $) then you should revert to the
- distributed version of the file and make the site-specific
- changes again using a UNIX compatible editor such as vi or emacs.
- Then try the Configure command again.
- <BR><PRE> close the file: <STRONG>:q </STRONG>(or <STRONG>:quit!</STRONG>)</PRE>
-
-<LI>Edit include/ap_config.h if you would like the scoreboard kept in shared
- memory instead of file or system heap.<br>
- The default behavior for Apache on all platforms <i>except</i> TPF is to use the
- file system for maintaining the scoreboard (which holds current Apache children status).
- The default behavior for Apache on TPF is to use system heap. Available with
- PUT10 is the use of shared memory for the scoreboard in place of the file system.
- This reduces file activity for the parent Apache ECB and improves performance.
- To activate shared memory, uncomment or <em>add</em> the directive
- <tt><b>#define USE_SHMGET_SCOREBOARD</b></tt>
- and comment out or <em>remove</em> the directive <tt><b>#define USE_TPF_SCOREBOARD</b></tt>
- both of which are in the TPF section in ap_config.h.
- This change will only take effect after Apache is (re)compiled.
- <br><br>
- If you prefer to use the file system instead of system heap or shared memory, ensure that both
- <tt>USE_TPF_SCOREBOARD</tt> and <tt>USE_SHMGET_SCOREBOARD</tt> are commented out or removed.
- This change will only take effect after Apache is (re)compiled.
-
-<A NAME="daemon"></A><br> <br>
-<LI>Edit include/ap_config.h if you plan on using the ZINET DAEMON model instead of the NOLISTEN model.<br>
- The default behavior is to let Apache check the server status (active/inactive) with ZINET
- and shut itself down when appropriate. The default behavior also includes checking Apache's activation number.
- Available with PUT11 (PJ25761) ZINET can perform these functions instead of Apache by using the DAEMON model.
- This model offers increased reliability and is preferred over the NOLISTEN model.
- If Apache goes down while running under the NOLISTEN model ZINET will not reactivate it nor alert the operator.
- To use the DAEMON model you must modify the default behavior of Apache by uncommenting or adding the directive
- <tt><b>#define USE_TPF_DAEMON</b></tt> within the TPF section in ap_config.h.
- This directive is also recommend when starting Apache from the command line (APAR PJ26515).
- This change will only take effect after Apache is (re)compiled.
- <br><br>
-
-
-<LI>Now compile the programs: <TT><STRONG>make</STRONG></TT><BR>
- Besides compiling, <tt>make</tt> also runs main/gen_test_char.c and main/gen_uri_delims.c
- in order to create main/test_char.h and main/uri_delims.h respectively<BR><BR>
- If during compilation you get a warning about a missing 'regex.h', set
- <TT>WANTHSREGEX=yes</TT> in the src/Configuration file and start back at the
- <TT><STRONG>Configure</STRONG></TT> step.
-</OL>
-
-<A NAME="installation"> </A>
-<H2 align=center>Installation</H2>
-<OL>
-<LI>Link the compiled object files into a DLL.
- Sample link JCL has been included as src/os/tpf/samples/linkdll.jcl.
- You will need to modify this JCL:
- <ul>
- <li>Change the IDs, data set names, and libraries for your particular site.
- <li>Add/remove <TT>mod_<EM>xxx</EM>.o</TT> files so they correspond to the
- <TT>mod_<EM>xxx</EM>.o</TT> lines in your src/Configuration file.
- </ul>
- <br><font color=red size=4>TIP: </font>
- Do NOT include gen_test_char.o or gen_uri_delims.o in the link JCL since these files are only
- used during the <tt>make</tt> step.
- <br><br>
-<LI>Create a loadset. Sample loadset JCL has been included as src/os/tpf/samples/loadset.jcl.
- You will need to modify this JCL for your particular site.
- <br><br>
-<LI>Load (<tt>ZOLDR LOAD</tt>) and activate (<tt>ZOLDR ACT</tt>) the loadset on your test system.
- <br><br>
-<LI>Ensure that the program name you are using for Apache has <tt>RESTRICT</tt> and <tt>KEY0</tt> authorization.
- <tt><b>zdpat <i>pppp</i> </b>(<b>c-c</b>)</tt> will display allocation information.
- You can use <tt><b>zapat <i>pppp</i> restrict key0 </b>(<b>c-c</b>)</tt> to alter the
- authorization.
- Note that if the program name is unallocated, you must have the loadset for it activated or you will receive
- INVALID PROGRAM NAME from the <tt>zdpat/zapat</tt> entries.
- <br><br>
-<LI>
- Apache requires a configuration file to initialize itself during activation.
- (Previously three configuration files were used.)
- Copy the distribution version, /conf/httpd.conf-dist, to /conf/httpd.conf and then
- edit the /conf/httpd.conf copy with your site specific information.
- <BR><BR>
- General documentation for Apache is located at
- <A HREF="http://www.apache.org/docs/">http://www.apache.org/docs/</A>
- and in the HTML pages included with the distribution (tarball) under the
- /htdocs/manual directory.
- <BR><BR>
-<LI>On TPF activate ZCLAW and update INETD using ZINET entries, the common case:
- <BR><BR>
- <PRE>
- ZINET ADD S-TFTP PGM-CTFT PORT-69 PROTOCOL-UDP MODEL-NOWAIT
-
- ZINET ADD S-APACHE PGM-<EM>pppp</EM> MODEL-NOLISTEN
- or ZINET ADD S-APACHE PGM-<EM>pppp</EM> MODEL-DAEMON USER-root <A HREF="#daemon">(see notes above regarding the DAEMON model)</A></PRE>
- Please refer to <EM>IBM Transaction Processing Facility Transmission Control
- Protocol/Internet Protocol Version 4 Release 1</EM> for more information
- on ZCLAW, INETD, and TFTP.
- <BR><BR>
-<LI>Prior to sending a request to your Apache server from a browser,
- TFTP the configuration file, log, icons and web pages to your TPF system.
- A typical directory structure for Apache is as follows:
-<PRE> /usr/local/apache/conf
- /usr/local/apache/logs
- /usr/local/apache/icons
- /usr/local/apache/htdocs</PRE>
- All gif, jpg, and zip files should be TFTP'd as binary; conf files and html pages should be TFTP'd as text.
- <br>The logs directory must exist in order to avoid an <CODE>fopen</CODE> error while running Apache.
- If you're running a PUT10 or higher version of TPF make the directory using the
- <tt><b>zfile mkdir /usr/local/apache/logs</b></tt> functional entry.
- If you're running TPF version PUT09 TFTP an empty file into the logs subdirectory to create it.
- <br><br>
-<LI>Start the server using the <tt><b>ZINET START S-APACHE</b></tt> command.
-</OL>
-<A NAME="visualage"> </A>
-<H2 align=center>Compiling with VisualAge TPF</H2>
-<P>
- It is not required that <tt>make</tt> be used to compile Apache for TPF:
- Individual programs may be compiled using IBM's VisualAge TPF product.
- This is particularly useful when compiling selected programs for the Debug Tool.
- <BR><BR>
- The following VisualAge compile settings are required:
-</P>
- <UL>
- <LI><EM>"DEFINE - Define preprocessor macro name(s)"</EM> must include
- <TT><STRONG>TPF, CHARSET_EBCDIC, _POSIX_SOURCE,</STRONG></TT> and
- <TT><STRONG>USE_HSREGEX</STRONG></TT>
- <BR><BR>
- <LI><EM>"LSEARCH - Path for user include files"</EM> must include
- <TT><STRONG>../src/include</STRONG></TT> and <TT><STRONG>../src/os/tpf</STRONG></TT>
- <BR><BR>
- <LI><EM>"DLL - Generate DLL code"</EM> must be checked
- <BR><BR>
- <LI><EM>"LONGNAME - Support long names"</EM> must be checked
- </UL>
-<HR>
-<CENTER>[ <A HREF="#top">top</A>
- | <A HREF="#download">Download</A>
- | <A HREF="#compilation">Compilation</A>
- | <A HREF="#installation">Installation</A>
- | <A HREF="#visualage">VisualAge</A> ]
-</CENTER>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Access Control by URL</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Access Control by URL</H1>
-
-<H2><A NAME="location">The <CODE><Location></CODE> Directive</A></H2>
-
-<A
- HREF="mod/directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> <Location <EM>URL prefix</EM>><BR>
-<A
- HREF="mod/directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="mod/directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> core<BR>
-
-<P>The <Location> directive provides for access control by
-URL. It is comparable to the <A
-HREF="mod/core.html#directory"><Directory></A> directive, and
-should be matched with a </Location> directive. Directives that
-apply to the URL given should be listed
-between them. <CODE><Location></CODE> sections are processed in the
-order they appear in the configuration file, after the
-<Directory> sections and <CODE>.htaccess</CODE> files are
-read.</P>
-
-<P>Note that, due to the way HTTP functions, <EM>URL prefix</EM>
-should, save for proxy requests, be of the form <CODE>/path/</CODE>,
-and should not include the <CODE>http://servername</CODE>. It doesn't
-necessarily have to protect a directory (it can be an individual
-file, or a number of files), and can include wild-cards. In a wild-card
-string, `?' matches any single character, and `*' matches any
-sequences of characters.
-
-<P>This functionality is especially useful when combined with the
-<CODE><A HREF="mod/mod_mime.html#sethandler">SetHandler</A></CODE>
-directive. For example, to enable status requests, but allow them only
-from browsers at foo.com, you might use:
-
-<PRE>
- <Location /status>
- SetHandler server-status
- Order Deny,Allow
- Deny from all
- Allow from .foo.com
- </Location>
-</PRE>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
-
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Reading Client Input in Apache 1.2</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-
-<blockquote><strong>Warning:</strong>
-This document has not been updated to take into account changes
-made in the 2.0 version of the Apache HTTP Server. Some of the
-information may still be relevant, but please use it
-with care.
-</blockquote>
-
-<H1 ALIGN="CENTER">Reading Client Input in Apache 1.2</H1>
-
-<HR>
-
-<P>Apache 1.1 and earlier let modules handle POST and PUT requests by
-themselves. The module would, on its own, determine whether the
-request had an entity, how many bytes it was, and then called a
-function (<CODE>read_client_block</CODE>) to get the data.
-
-<P>However, HTTP/1.1 requires several things of POST and PUT request
-handlers that did not fit into this module, and all existing modules
-have to be rewritten. The API calls for handling this have been
-further abstracted, so that future HTTP protocol changes can be
-accomplished while remaining backwards-compatible.</P>
-
-<HR>
-
-<H3>The New API Functions</H3>
-
-<PRE>
- int ap_setup_client_block (request_rec *, int read_policy);
- int ap_should_client_block (request_rec *);
- long ap_get_client_block (request_rec *, char *buffer, int buffer_size);
-</PRE>
-
-<OL>
-<LI>Call <CODE>ap_setup_client_block()</CODE> near the beginning of the request
- handler. This will set up all the necessary properties, and
- will return either OK, or an error code. If the latter,
- the module should return that error code. The second parameter
- selects the policy to apply if the request message indicates a
- body, and how a chunked
- transfer-coding should be interpreted. Choose one of
-<PRE>
- REQUEST_NO_BODY Send 413 error if message has any body
- REQUEST_CHUNKED_ERROR Send 411 error if body without Content-Length
- REQUEST_CHUNKED_DECHUNK If chunked, remove the chunks for me.
- REQUEST_CHUNKED_PASS Pass the chunks to me without removal.
-</PRE>
- In order to use the last two options, the caller MUST provide a buffer
- large enough to hold a chunk-size line, including any extensions.
-
-
-
-<LI>When you are ready to possibly accept input, call
- <CODE>ap_should_client_block()</CODE>.
- This will tell the module whether or not to read input. If it is 0,
- the module should assume that the input is of a non-entity type
- (<EM>e.g.</EM>, a GET request). A nonzero response indicates that the module
- should proceed (to step 3).
- This step also sends a 100 Continue response
- to HTTP/1.1 clients, so should not be called until the module
- is <STRONG>*definitely*</STRONG> ready to read content. (otherwise, the
- point of the
- 100 response is defeated). Never call this function more than once.
-
-<LI>Finally, call <CODE>ap_get_client_block</CODE> in a loop. Pass it a
- buffer and its
- size. It will put data into the buffer (not necessarily the full
- buffer, in the case of chunked inputs), and return the length of
- the input block. When it is done reading, it will
- return 0 if EOF, or -1 if there was an error.
-
-</OL>
-
-<P>As an example, please look at the code in
-<CODE>mod_cgi.c</CODE>. This is properly written to the new API
-guidelines.</P>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
- "http://www.w3.org/TR/REC-html40/loose.dtd">
-<HTML>
-<HEAD>
-<TITLE>Apache HTTP Server: Notes about Compatibility with NCSA's Server</TITLE>
-</HEAD>
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-
-<blockquote><strong>Warning:</strong>
-This document has not been updated to take into account changes
-made in the 2.0 version of the Apache HTTP Server. Some of the
-information may still be relevant, but please use it
-with care.
-</blockquote>
-
-
-<H1 ALIGN="CENTER">Compatibility Notes with NCSA's Server</H1>
-
-<HR>
-
-While Apache is for the most part a drop-in replacement for NCSA's
-httpd, there are a couple gotcha's to watch out for. These are mostly
-due to the fact that the parser for config and access control files
-was rewritten from scratch, so certain liberties the earlier servers
-took may not be available here. These are all easily fixable. If you
-know of other problems that belong here, <A
-HREF="http://www.apache.org/bug_report.html">let us know.</A>
-
-<P>Please also check the <A HREF="known_client_problems.html">known
-client problems</A> page.
-
-<OL>
-<LI>As of Apache 1.3.1, methods named in a
- <A HREF="../mod/core.html#limit"><SAMP><Limit></SAMP></A>
- section <EM>must</EM> be listed in upper-case. Lower- or mixed-case
- method names will result in a configuration error.
- <P>
- </P>
-</LI>
-
-<LI>The basic mod_auth <CODE>AuthGroupFile</CODE>-specified group file
- format allows commas between user names - Apache does not.
-
-<P>
-<LI>If you follow the NCSA guidelines for setting up access
- restrictions based on client domain, you may well have added
- entries for <CODE>AuthType, AuthName, AuthUserFile</CODE> or
- <CODE>AuthGroupFile</CODE>. <STRONG>None</STRONG> of these are
- needed (or appropriate) for restricting access based on client
- domain. When Apache sees <CODE>AuthType</CODE> it (reasonably)
- assumes you are using some authorization type based on username
- and password. Please remove <CODE>AuthType</CODE>, it's
- unnecessary even for NCSA.
-
-<P>
-<LI><CODE>OldScriptAlias</CODE> is no longer supported.
-
-<P>
-<LI><CODE>exec cgi=""</CODE> produces reasonable <STRONG>malformed
- header</STRONG> responses when used to invoke non-CGI scripts.<BR>
- The NCSA code ignores the missing header (bad idea).
- <BR>Solution: write CGI to the CGI spec and use
- <CODE>include virtual</CODE>, or use <CODE>exec cmd=""</CODE> instead.
-
-<P>
-<LI>Icons for FancyIndexing broken - well, no, they're not broken,
- we've just upgraded the icons from flat .xbm files to pretty and
- much smaller .gif files, courtesy of <A
- HREF="mailto:kevinh@eit.com">Kevin Hughes</A> at <A
- HREF="http://www.eit.com/">EIT</A>. If you are using the same
- srm.conf from an old distribution, make sure you add the new <A
- HREF="../mod/mod_autoindex.html#addicon">AddIcon</A>, <A
- HREF="../mod/mod_autoindex.html#addiconbytype">AddIconByType</A>,
- and <A
- HREF="../mod/mod_autoindex.html#defaulticon">DefaultIcon</A>
- directives.
-
-<P>
-<LI>Apache versions before 1.2b1 will ignore the last line of configuration
- files if the last line does not have a trailing newline. This affects
- configuration files (httpd.conf, access.conf and srm.conf), and
- htpasswd and htgroup files.
-
-<P>
-<LI>Apache does not permit commas delimiting the methods in <Limit>.
-
-<P>
-<LI>Apache's <CODE><VirtualHost></CODE> treats all addresses as
- "optional" (<EM>i.e.</EM>, the server should continue booting if it can't
- resolve the address). Whereas in NCSA the default is to fail
- booting unless an added <CODE>optional</CODE> keyword is included.
-
-<P>
-<LI>Apache does not implement <CODE>OnDeny</CODE>; use
- <A HREF="../mod/core.html#errordocument"><CODE>ErrorDocument</CODE></A>
- instead.
-
-<P>
-<LI>Apache (as of 1.3) always performs the equivalent of
- <CODE>HostnameLookups minimal</CODE>. <CODE>minimal</CODE> is not an
- option to <A HREF="../mod/core.html#hostnamelookups"><CODE>
- HostnameLookups</CODE></A>.
-
-<P>
-<LI>To embed spaces in directive arguments NCSA used a backslash
- before the space. Apache treats backslashes as normal characters. To
- embed spaces surround the argument with double-quotes instead.
-
-<P>
-<LI>Apache does not implement the NCSA <CODE>referer</CODE>
- directive. See <A HREF="http://bugs.apache.org/index/full/968">
- PR#968</A> for a few brief suggestions on alternative ways to
- implement the same thing under Apache.
-
-<P>
-<LI>Apache does not allow ServerRoot settings inside a VirtualHost
- container. There is only one global ServerRoot in Apache; any desired
- changes in paths for virtual hosts need to be made with the explicit
- directives, <em>e.g.</em>, DocumentRoot, TransferLog, <EM>etc.</EM>
-
-</OL>
-
-More to come when we notice them....
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<META NAME="description"
- CONTENT="Some 'how to' tips for the Apache httpd server">
-<META NAME="keywords" CONTENT="apache,redirect,robots,rotate,logfiles">
-<TITLE>Apache HOWTO documentation</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Apache HOWTO documentation</H1>
-
-How to:
-<UL>
-<LI><A HREF="#redirect">redirect an entire server or directory to a single
- URL</A>
-<LI><A HREF="#logreset">reset your log files</A>
-<LI><A HREF="#stoprob">stop/restrict robots</A>
-<LI><A HREF="#proxyssl">proxy SSL requests <EM>through</EM> your non-SSL
- server</A>
-</UL>
-
-<HR>
-<H2><A NAME="redirect">How to redirect an entire server or directory to a
-single URL</A></H2>
-
-<P>There are two chief ways to redirect all requests for an entire
-server to a single location: one which requires the use of
-<CODE>mod_rewrite</CODE>, and another which uses a CGI script.
-
-<P>First: if all you need to do is migrate a server from one name to
-another, simply use the <CODE>Redirect</CODE> directive, as supplied
-by <CODE>mod_alias</CODE>:
-
-<BLOCKQUOTE><PRE>
- Redirect / http://www.apache.org/
-</PRE></BLOCKQUOTE>
-
-<P>Since <CODE>Redirect</CODE> will forward along the complete path,
-however, it may not be appropriate - for example, when the directory
-structure has changed after the move, and you simply want to direct people
-to the home page.
-
-<P>The best option is to use the standard Apache module
-<CODE>mod_rewrite</CODE>.
-If that module is compiled in, the following lines
-
-<BLOCKQUOTE><PRE>RewriteEngine On
-RewriteRule /.* http://www.apache.org/ [R]
-</PRE></BLOCKQUOTE>
-
-will send an HTTP 302 Redirect back to the client, and no matter
-what they gave in the original URL, they'll be sent to
-"http://www.apache.org/".
-
-<p>The second option is to set up a <CODE>ScriptAlias</CODE> pointing to
-a <STRONG>CGI script</STRONG> which outputs a 301 or 302 status and the
-location
-of the other server.</P>
-
-<P>By using a <STRONG>CGI script</STRONG> you can intercept various requests
-and
-treat them specially, <EM>e.g.</EM>, you might want to intercept
-<STRONG>POST</STRONG>
-requests, so that the client isn't redirected to a script on the other
-server which expects POST information (a redirect will lose the POST
-information.) You might also want to use a CGI script if you don't
-want to compile mod_rewrite into your server.
-
-<P>Here's how to redirect all requests to a script... In the server
-configuration file,
-<BLOCKQUOTE><PRE>ScriptAlias / /usr/local/httpd/cgi-bin/redirect_script/</PRE>
-</BLOCKQUOTE>
-
-and here's a simple perl script to redirect requests:
-
-<BLOCKQUOTE><PRE>
-#!/usr/local/bin/perl
-
-print "Status: 302 Moved Temporarily\r\n" .
- "Location: http://www.some.where.else.com/\r\n" .
- "\r\n";
-
-</PRE></BLOCKQUOTE>
-
-<HR>
-
-<H2><A NAME="logreset">How to reset your log files</A></H2>
-
-<P>Sooner or later, you'll want to reset your log files (access_log and
-error_log) because they are too big, or full of old information you don't
-need.</P>
-
-<P><CODE>access.log</CODE> typically grows by 1Mb for each 10,000 requests.</P>
-
-<P>Most people's first attempt at replacing the logfile is to just move the
-logfile or remove the logfile. This doesn't work.</P>
-
-<P>Apache will continue writing to the logfile at the same offset as before the
-logfile moved. This results in a new logfile being created which is just
-as big as the old one, but it now contains thousands (or millions) of null
-characters.</P>
-
-<P>The correct procedure is to move the logfile, then signal Apache to tell
-it to reopen the logfiles.</P>
-
-<P>Apache is signaled using the <STRONG>SIGHUP</STRONG> (-1) signal.
-<EM>e.g.</EM>
-<BLOCKQUOTE><CODE>
-mv access_log access_log.old<BR>
-kill -1 `cat httpd.pid`
-</CODE></BLOCKQUOTE>
-
-<P>Note: <CODE>httpd.pid</CODE> is a file containing the
-<STRONG>p</STRONG>rocess <STRONG>id</STRONG>
-of the Apache httpd daemon, Apache saves this in the same directory as the log
-files.</P>
-
-<P>Many people use this method to replace (and backup) their logfiles on a
-nightly or weekly basis.</P>
-<HR>
-
-<H2><A NAME="stoprob">How to stop or restrict robots</A></H2>
-
-<P>Ever wondered why so many clients are interested in a file called
-<CODE>robots.txt</CODE> which you don't have, and never did have?</P>
-
-<P>These clients are called <STRONG>robots</STRONG> (also known as crawlers,
-spiders and other cute names) - special automated clients which
-wander around the web looking for interesting resources.</P>
-
-<P>Most robots are used to generate some kind of <EM>web index</EM> which
-is then used by a <EM>search engine</EM> to help locate information.</P>
-
-<P><CODE>robots.txt</CODE> provides a means to request that robots limit their
-activities at the site, or more often than not, to leave the site alone.</P>
-
-<P>When the first robots were developed, they had a bad reputation for
-sending hundreds/thousands of requests to each site, often resulting
-in the site being overloaded. Things have improved dramatically since
-then, thanks to <A
-HREF="http://info.webcrawler.com/mak/projects/robots/guidelines.html">
-Guidelines for Robot Writers</A>, but even so, some robots may exhibit
-unfriendly behavior which the webmaster isn't willing to tolerate, and
-will want to stop.</P>
-
-<P>Another reason some webmasters want to block access to robots, is to
-stop them indexing dynamic information. Many search engines will use the
-data collected from your pages for months to come - not much use if you're
-serving stock quotes, news, weather reports or anything else that will be
-stale by the time people find it in a search engine.</P>
-
-<P>If you decide to exclude robots completely, or just limit the areas
-in which they can roam, create a <CODE>robots.txt</CODE> file; refer
-to the <A HREF="http://info.webcrawler.com/mak/projects/robots/robots.html"
->robot information pages</A> provided by Martijn Koster for the syntax.</P>
-
-<HR>
-<H2><A NAME="proxyssl">How to proxy SSL requests <EM>through</EM>
- your non-SSL Apache server</A>
- <BR>
- <SMALL>(<EM>submitted by David Sedlock</EM>)</SMALL>
-</H2>
-<P>
-SSL uses port 443 for requests for secure pages. If your browser just
-sits there for a long time when you attempt to access a secure page
-over your Apache proxy, then the proxy may not be configured to handle
-SSL. You need to instruct Apache to listen on port 443 in addition to
-any of the ports on which it is already listening:
-</P>
-<PRE>
- Listen 80
- Listen 443
-</PRE>
-<P>
-Then set the security proxy in your browser to 443. That might be it!
-</P>
-<P>
-If your proxy is sending requests to another proxy, then you may have
-to set the directive ProxyRemote differently. Here are my settings:
-</P>
-<PRE>
- ProxyRemote http://nicklas:80/ http://proxy.mayn.franken.de:8080
- ProxyRemote http://nicklas:443/ http://proxy.mayn.franken.de:443
-</PRE>
-<P>
-Requests on port 80 of my proxy <SAMP>nicklas</SAMP> are forwarded to
-<SAMP>proxy.mayn.franken.de:8080</SAMP>, while requests on port 443 are
-forwarded to <SAMP>proxy.mayn.franken.de:443</SAMP>.
-If the remote proxy is not set up to
-handle port 443, then the last directive can be left out. SSL requests
-will only go over the first proxy.
-</P>
-<P>
-Note that your Apache does NOT have to be set up to serve secure pages
-with SSL. Proxying SSL is a different thing from using it.
-</P>
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
</DT>
<DD>Frequently-Asked Questions concerning the Apache project and server.
</DD>
- <DT><A
- HREF="client_block_api.html"
- >Reading Client Input in Apache 1.2</A>
- </DT>
- <DD>Describes differences between Apache 1.1 and 1.2 in how modules
- read information from the client.
- </DD>
- <DT><A
- HREF="compat_notes.html"
- >Compatibility with NCSA</A>
- </DT>
- <DD>Notes about Apache's compatibility with the NCSA server.
- </DD>
<DT><A HREF="custom_errordocs.html">How to use XSSI and Negotiation
for custom ErrorDocuments</A>
</DT>
<DD>A description of the causes of Apache processes going into the
<SAMP>FIN_WAIT_2</SAMP> state, and what you can do about it.
</DD>
- <DT><A
- HREF="howto.html"
- >"How-To"</A>
- </DT>
- <DD>Instructions about how to accomplish some commonly-desired server
- functionality changes.
- </DD>
<DT><A
HREF="known_client_problems.html"
>Known Client Problems</A>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Using Apache with Novell NetWare 5</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-
-<blockquote><strong>Warning:</strong>
-This document has not been updated to take into account changes
-made in the 2.0 version of the Apache HTTP Server. Some of the
-information may still be relevant, but please use it
-with care.
-</blockquote>
-
-<H1 ALIGN="CENTER">Using Apache With Novell NetWare 5</H1>
-
-<P>This document explains how to install, configure and run
- Apache 1.3 under Novell NetWare 5. Please note that at
- this time, NetWare support is entirely experimental, and is
- recommended only for experienced users. The Apache Group does not
- guarantee that this software will work as documented, or even at
- all. If you find any bugs, or wish to contribute in other ways, please
- use our <A HREF="http://www.apache.org/bug_report.html">bug reporting
- page.</A></P>
-
-<P><STRONG>Warning: Apache on NetWare has not yet been optimized for performance.
-Apache still performs best, and is most reliable on Unix platforms. Over
-time we will improve NetWare performance. Folks doing comparative reviews
-of webserver performance are asked to compare against Apache
-on a Unix platform such as Solaris, FreeBSD, or Linux.</STRONG></P>
-
-<P>
-
-Most of this document assumes that you are installing Apache from a
-binary distribution. If you want to compile Apache yourself (possibly
-to help with development, or to track down bugs), see the section on
-<A HREF="#comp">Compiling Apache for NetWare</A> below.
-
-<HR>
-
-<UL>
- <LI><A HREF="#req">Requirements</A>
- <LI><A HREF="#down">Downloading Apache for NetWare</A>
- <LI><A HREF="#inst">Installing Apache for NetWare</A>
- <LI><A HREF="#run">Running Apache for NetWare</A>
- <LI><A HREF="#use">Using Apache for NetWare</A>
- <LI><A HREF="#comp">Compiling Apache for NetWare</A>
-</UL>
-
-<HR>
-
-<H2><A NAME="req">Requirements</A></H2>
-
-Apache 1.3 is designed to run on NetWare 5.0 and 5.1.
-<P>
-
-<STRONG>If running on NetWare 5.0 you must install Service Pack 4.</STRONG>
-
-<P>
-<P>
-
-Service pack 4 is available <A HREF="http://support.novell.com/misc/patlst.htm#nw">here.</A>
-
-<H2><A NAME="down">Downloading Apache for NetWare 5</A></H2>
-
-<P>Information on the latest version of Apache can be found on the
-Apache web server at <A
-HREF="http://www.apache.org/">http://www.apache.org/</A>. This will
-list the current release, any more recent alpha or beta-test releases,
-together with details of mirror web and anonymous ftp sites.</P>
-
-<P>
-<H2><A NAME="inst">Installing Apache for NetWare</A></H2>
-
-There is no Apache install program for NetWare currently. You will need
-to compile apache and copy the files over to the server manually. An
-install program will be posted at a later date.
-<P>
-Follow these steps to install Apache on NetWare (assuming you will install to sys:/apache):
-
-<UL>
- <LI>Create a directory called <CODE>Apache</CODE> on a NetWare volume
- <LI>Copy Apache.nlm, Apachec.nlm, htdigest.nlm, and htpasswd.nlm to sys:/apache
- <LI>Create a directory under <CODE>sys:/Apache</CODE> called <CODE>conf</CODE>
- <LI>Copy all the *.conf-dist-nw files to the <CODE>sys:/apache/conf</CODE> directory
- and rename them all as *.conf files
- <LI>Copy the mime.types and magic files to sys:/apache/conf directory
- <LI>Copy all files and subdirectories of \apache-1.3\htdocs to sys:/apache/htdocs and
- rename the proper index file (index.html.en) to index.html
- <LI>Copy all files and subdirectories in \apache-1.3\icons to sys:/apache/icons
- <LI>Create the directory sys:/apache/logs on the server
- <LI>Create the directory sys:/apache/cgi-bin on the server
- <LI>Create the directory sys:/apache/modules and copy all nlm modules built into the
- modules directory
- <LI>Edit the httpd.conf file setting ServerRoot and ServerName to reflect your correct
- server settings
- <LI>Add <CODE>sys:/apache</CODE> to the search path. EXAMPLE: search add sys:\apache
-</UL>
-
-<P>Apache may be installed to other volumes besides the default <CODE>sys</CODE> volume.
-
-<H2><A NAME="run">Running Apache for NetWare</A></H2>
-
-To start Apache just type <STRONG>apache</STRONG> at the console. This
-will load apache in the OS address space. If you prefer to load
-Apache in a protected address space you may specify the address space
-with the load statement as follows:
-<P>
-<PRE>
- load address space = apache apache
-</PRE>
-<P>
-This will load Apache into an address space called apache. Running multiple instances
-of Apache concurrently on NetWare is possible by loading each instance into its own
-protected address space.
-
-<P>
-After starting Apache it will be listening to port 80 (unless you
-changed the <SAMP>Port</SAMP>, <SAMP>Listen</SAMP> or
-<SAMP>BindAddress</SAMP> directives in the configuration files).
-To connect to the server and access the default page, launch a browser
-and enter the server's name or address.
-
-This should respond with a welcome page, and a link to the Apache
-manual. If nothing happens or you get an error, look in the
-<SAMP>error_log</SAMP> file in the <SAMP>logs</SAMP> directory.
-
-<P>
-
-Once your basic installation is working, you should configure it
-properly by editing the files in the <SAMP>conf</SAMP> directory.
-
-<P>
-To unload Apache running in the OS address space just type the
-following at the console:
-<PRE>
- unload apache
-</PRE>
-If apache is running in a protected address space specify the
-address space in the unload statement:
-<PRE>
- unload address space = apache apache
-</PRE>
-
-<P>
-When working with Apache it is important to know how it will find the
-configuration files. You can specify a configuration file on the command line
-in two ways:
-
-<UL>
-<LI>-f specifies a path to a particular configuration file
-</UL>
-<PRE> apache -f "vol:/my server/conf/my.conf"</PRE>
-<PRE> apache -f test/test.conf</PRE>
-
-In these cases, the proper ServerRoot should be set in the configuration file.
-
-<P>
-
-If you don't specify a configuration file name with -f, Apache will
-use the file name compiled into the server, usually "conf/httpd.conf". Invoking
-Apache with the -V switch will display this value labeled as SERVER_CONFIG_FILE.
-Apache will then determine its ServerRoot by trying the following, in this order:
-
-<UL>
-<LI>A ServerRoot directive via a -C switch.
-<LI>The -d switch on the command line.
-<LI>Current working directory
-<LI>The server root compiled into the server.
-</UL>
-
-<P>
-The server root compiled into the server is usually "sys:/apache".
-invoking apache with the -V switch will display this value
-labeled as HTTPD_ROOT.
-
-<H2><A NAME="use">Configuring Apache for NetWare</A></H2>
-
-Apache is configured by files in the <SAMP>conf</SAMP>
-directory. These are the same as files used to configure the Unix
-version, but there are a few different directives for Apache on
-NetWare. See the <A HREF="../">Apache documentation</A> for all the
-available directives.
-
-<P>
-
-The main differences in Apache for NetWare are:
-
-<UL>
- <LI><P>Because Apache for NetWare is multithreaded, it does not use a
- separate process for each request, as Apache does with
- Unix. Instead there are only threads running: a parent thread, and
- a child which handles the requests. Within the child each request is
- handled by a separate thread.
- <P>
-
- So the "process"-management directives are different:
- <P><A
- HREF="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</A>
- - Like the Unix directive, this controls how many requests a
- process will serve before exiting. However, unlike Unix, a
- process serves all the requests at once, not just one, so if
- this is set, it is recommended that a very high number is
- used. The recommended default, <CODE>MaxRequestsPerChild
- 0</CODE>, does not cause the process to ever exit.
- <P><A HREF="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</A> -
- This directive is new, and tells the server how many threads it
- should use. This is the maximum number of connections the server
- can handle at once; be sure and set this number high enough for
- your site if you get a lot of hits. The recommended default is
- <CODE>ThreadsPerChild 50</CODE>.
- </P><A HREF="../mod/core.html#threadstacksize">ThreadStackSize</A> -
- This directive tells the server what size of stack to use for
- the individual threads. The recommended default is
- <CODE>ThreadStackSize 65536</CODE>.
- <P>
- <LI><P>The directives that accept filenames as arguments now must use
- NetWare filenames instead of Unix ones. However, because Apache
- uses Unix-style names internally, you must use forward slashes, not
- backslashes. Volumes can be used; if omitted, the drive with the
- Apache executable will be assumed.</P>
- <LI><P>Apache for NetWare contains the ability to load modules at runtime,
- without recompiling the server. If Apache is compiled normally, it
- will install a number of optional modules in the
- <CODE>\Apache\modules</CODE> directory. To activate these, or other
- modules, the new <A HREF="../mod/mod_so.html#loadmodule">LoadModule</A>
- directive must be used. For example, to active the status module,
- use the following (in addition to the status-activating directives
- in <CODE>access.conf</CODE>):</P>
-<PRE>
- LoadModule status_module modules/status
-</PRE>
- <P>Information on <A HREF="../mod/mod_so.html#creating">creating loadable
- modules</A> is also available.</P>
-</UL>
-
-<H2><A NAME="comp">Compiling Apache for NetWare</A></H2>
-
-<P>Compiling Apache requires MetroWerks CodeWarrior 5 to be properly
- installed.
-
-<P>First, unpack the Apache distribution into an appropriate
- directory. Then go to the <CODE>src</CODE> subdirectory of the Apache
- distribution and unzip <CODE>ApacheNW.mcp.gz</CODE>. You may use a
- recent version of WinZip to accomplish this or gzip for Windows. The main
- Metrowerks project file for Apache <CODE>(ApacheNW.mcp)</CODE> is now ready
- to use. Just double click on it from within explorer and it should
- automatically launch MetroWerks CodeWarrior.
-</P>
-
-<P>All major pieces of Apache may be built using the ApacheNW.mcp project
- file. This includes modules such as status, info, and proxy. In addition,
- the following project files have been provided as well:</p>
-
-<PRE>
- /apache-1.3/src/support/htpasswd.mcp.gz
- /apache-1.3/src/support/htdigest.mcp.gz
-</PRE>
-
-<p><CODE>htpasswd.mcp.gz</CODE> and <CODE>htdigest.mcp.gz</CODE> will also need
-to be unzipped before they can be used with MetroWerks CodeWarrior.</p>
-
-<P>Once Apache has been compiled, it needs to be installed in its server
- root directory. The default is the <CODE>sys:/Apache</CODE>
- directory. </P>
-<P>
-Before running the server you must fill out the conf directory.
-Copy the *.conf-dist-nw from the distribution conf directory
-and rename *.conf. Edit the ServerRoot entries to your
-actual server root (for example "sys:/apache"). Copy over
-the conf/magic and conf/mime.types files as well.</p>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
-
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Running a High-Performance Web Server for BSD</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<A NAME="initial">
-<!--#include virtual="header.html" -->
-</A>
-<blockquote><strong>Warning:</strong>
-This document has not been updated to take into account changes
-made in the 2.0 version of the Apache HTTP Server. Some of the
-information may still be relevant, but please use it
-with care.
-</blockquote>
-
-
-<H1 ALIGN="CENTER">Running a High-Performance Web Server for BSD</H1>
-
-Like other OS's, the listen queue is often the <STRONG>first limit
-hit</STRONG>. The
-following are comments from "Aaron Gifford <agifford@InfoWest.COM>"
-on how to fix this on BSDI 1.x, 2.x, and FreeBSD 2.0 (and earlier):
-
-<P>
-
-Edit the following two files:
-<BLOCKQUOTE><CODE> /usr/include/sys/socket.h <BR>
- /usr/src/sys/sys/socket.h </CODE></BLOCKQUOTE>
-In each file, look for the following:
-<PRE>
- /*
- * Maximum queue length specifiable by listen.
- */
- #define SOMAXCONN 5
-</PRE>
-
-Just change the "5" to whatever appears to work. I bumped the two
-machines I was having problems with up to 32 and haven't noticed the
-problem since.
-
-<P>
-
-After the edit, recompile the kernel and recompile the Apache server
-then reboot.
-
-<P>
-
-FreeBSD 2.1 seems to be perfectly happy, with SOMAXCONN
-set to 32 already.
-
-<P>
-
-<A NAME="detail">
-<STRONG>Addendum for <EM>very</EM> heavily loaded BSD servers</STRONG><BR>
-</A>
-from Chuck Murcko <chuck@telebase.com>
-
-<P>
-
-If you're running a really busy BSD Apache server, the following are useful
-things to do if the system is acting sluggish:<P>
-
-<UL>
-
-<LI> Run vmstat to check memory usage, page/swap rates, <EM>etc.</EM>
-
-<LI> Run netstat -m to check mbuf usage
-
-<LI> Run fstat to check file descriptor usage
-
-</UL>
-
-These utilities give you an idea what you'll need to tune in your kernel,
-and whether it'll help to buy more RAM.
-
-Here are some BSD kernel config parameters (actually BSDI, but pertinent to
-FreeBSD and other 4.4-lite derivatives) from a system getting heavy usage.
-The tools mentioned above were used, and the system memory was increased to
-48 MB before these tuneups. Other system parameters remained unchanged.
-
-<P>
-
-<PRE>
-maxusers 256
-</PRE>
-
-Maxusers drives a <EM>lot</EM> of other kernel parameters:
-
-<UL>
-
-<LI> Maximum # of processes
-
-<LI> Maximum # of processes per user
-
-<LI> System wide open files limit
-
-<LI> Per-process open files limit
-
-<LI> Maximum # of mbuf clusters
-
-<LI> Proc/pgrp hash table size
-
-</UL>
-
-The actual formulae for these derived parameters are in
-<EM>/usr/src/sys/conf/param.c</EM>.
-These calculated parameters can also be overridden (in part) by specifying
-your own values in the kernel configuration file:
-
-<PRE>
-# Network options. NMBCLUSTERS defines the number of mbuf clusters and
-# defaults to 256. This machine is a server that handles lots of traffic,
-# so we crank that value.
-options NMBCLUSTERS=4096 # mbuf clusters at 4096
-
-#
-# Misc. options
-#
-options CHILD_MAX=512 # maximum number of child processes
-options OPEN_MAX=512 # maximum fds (breaks RPC svcs)
-</PRE>
-
-<P>
-
-In many cases, NMBCLUSTERS must be set much larger than would appear
-necessary at first glance. The reason for this is that if the browser
-disconnects in mid-transfer, the socket fd associated with that particular
-connection ends up in the TIME_WAIT state for several minutes, during
-which time its mbufs are not yet freed. Another reason is that, on server
-timeouts, some connections end up in FIN_WAIT_2 state forever, because
-this state doesn't time out on the server, and the browser never sent
-a final FIN. For more details see the
-<A HREF="fin_wait_2.html">FIN_WAIT_2</A> page.
-
-<P>
-
-Some more info on mbuf clusters (from sys/mbuf.h):
-<PRE>
-/*
- * Mbufs are of a single size, MSIZE (machine/machparam.h), which
- * includes overhead. An mbuf may add a single "mbuf cluster" of size
- * MCLBYTES (also in machine/machparam.h), which has no additional overhead
- * and is used instead of the internal data area; this is done when
- * at least MINCLSIZE of data must be stored.
- */
-</PRE>
-
-<P>
-
-CHILD_MAX and OPEN_MAX are set to allow up to 512 child processes (different
-than the maximum value for processes per user ID) and file descriptors.
-These values may change for your particular configuration (a higher OPEN_MAX
-value if you've got modules or CGI scripts opening lots of connections or
-files). If you've got a lot of other activity besides httpd on the same
-machine, you'll have to set NPROC higher still. In this example, the NPROC
-value derived from maxusers proved sufficient for our load.
-
-<P>
-
-To increase the size of the <CODE>listen()</CODE> queue, you need to
-adjust the value of SOMAXCONN. SOMAXCONN is not derived from maxusers,
-so you'll always need to increase that yourself. We use a value guaranteed
-to be larger than Apache's default for the listen() of 128, currently.
-The actual value for SOMAXCONN is set in <CODE>sys/socket.h</CODE>.
-The best way to adjust this parameter is run-time, rather than changing
-it in this header file and thus hardcoding a value in the kernel and
-elsewhere. To do this, edit <CODE>/etc/rc.local</CODE> and add the
-following line:
-<PRE>
- /usr/sbin/sysctl -w kern.somaxconn=256
-</PRE>
-
-<P>
-
-We used <CODE>256</CODE> but you can tune it for your own setup. In
-many cases, however, even the default value of <CODE>128</CODE> (for
-later versions of FreeBSD) is OK.
-
-<P>
-
-<STRONG>Caveats</STRONG>
-
-<P>
-
-Be aware that your system may not boot with a kernel that is configured
-to use more resources than you have available system RAM.
-<STRONG>ALWAYS</STRONG>
-have a known bootable kernel available when tuning your system this way,
-and use the system tools beforehand to learn if you need to buy more
-memory before tuning.
-
-<P>
-
-RPC services will fail when the value of OPEN_MAX is larger than 256.
-This is a function of the original implementations of the RPC library,
-which used a byte value for holding file descriptors. BSDI has partially
-addressed this limit in its 2.1 release, but a real fix may well await
-the redesign of RPC itself.
-
-<P>
-
-Finally, there's the hard limit of child processes configured in Apache.
-
-<P>
-
-For versions of Apache later than 1.0.5 you'll need to change the
-definition for <STRONG>HARD_SERVER_LIMIT</STRONG> in <EM>httpd.h</EM> and
-recompile if you need to run more than the default 150 instances of httpd.
-
-<P>
-
-From conf/httpd.conf-dist:
-
-<PRE>
-# Limit on total number of servers running, <EM>i.e.</EM>, limit on the number
-# of clients who can simultaneously connect --- if this limit is ever
-# reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.
-# It is intended mainly as a brake to keep a runaway server from taking
-# Unix with it as it spirals down...
-
-MaxClients 150
-</PRE>
-
-Know what you're doing if you bump this value up, and make sure you've
-done your system monitoring, RAM expansion, and kernel tuning beforehand.
-Then you're ready to service some serious hits!
-
-<P>
-
-Thanks to <EM>Tony Sanders</EM> and <EM>Chris Torek</EM> at BSDI for their
-helpful suggestions and information.
-
-<P>
-
-"M. Teterin" <mi@ALDAN.ziplink.net> writes:<P>
-<BLOCKQUOTE>It really does help if your kernel and frequently used utilities
-are fully optimized. Rebuilding the FreeBSD kernel on an AMD-133
-(486-class CPU) web-server with<BR>
-<CODE> -m486 -fexpensive-optimizations -fomit-frame-pointer -O2</CODE><BR>
-helped reduce the number of "unable" errors, because the CPU was
-often maxed out.</BLOCKQUOTE>
-<P>
-
-<HR>
-
-<H3>More welcome!</H3>
-
-If you have tips to contribute, send mail to
-<A HREF="mailto:apache@apache.org">apache@apache.org</A>
-
-<!--#include virtual="footer.html" -->
-</BODY></HTML>
-
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Performance Tuning Tips for Digital Unix</TITLE>
-</HEAD>
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Performance Tuning Tips for Digital Unix</H1>
-
-Below is a set of newsgroup posts made by an engineer from DEC in
-response to queries about how to modify DEC's Digital Unix OS for more
-heavily loaded web sites. Copied with permission.
-
-<HR>
-
-<H2>Update</H2>
-From: Jeffrey Mogul <mogul@pa.dec.com><BR>
-Date: Fri, 28 Jun 96 16:07:56 MDT<BR>
-
-<OL>
-<LI> The advice given in the README file regarding the
- "tcbhashsize" variable is incorrect. The largest value
- this should be set to is 1024. Setting it any higher
- will have the perverse result of disabling the hashing
- mechanism.
-
-<LI>Patch ID OSF350-146 has been superseded by
-<BLOCKQUOTE>
- Patch ID OSF350-195 for V3.2C<BR>
- Patch ID OSF360-350195 for V3.2D
-</BLOCKQUOTE>
- Patch IDs for V3.2E and V3.2F should be available soon.
- There is no known reason why the Patch ID OSF360-350195
- won't work on these releases, but such use is not officially
- supported by Digital. This patch kit will not be needed for
- V3.2G when it is released.
-</OL>
-<HR>
-
-
-<PRE>
-From mogul@pa.dec.com (Jeffrey Mogul)
-Organization DEC Western Research
-Date 30 May 1996 00:50:25 GMT
-Newsgroups <A HREF="news:comp.unix.osf.osf1">comp.unix.osf.osf1</A>
-Message-ID <4oirch$bc8@usenet.pa.dec.com>
-Subject Re: Web Site Performance
-References 1
-
-
-
-In article <skoogDs54BH.9pF@netcom.com> skoog@netcom.com (Jim Skoog) writes:
->Where are the performance bottlenecks for Alpha AXP running the
->Netscape Commerce Server 1.12 with high volume internet traffic?
->We are evaluating network performance for a variety of Alpha AXP
->running DEC UNIX 3.2C, which run DEC's seal firewall and behind
->that Alpha 1000 and 2100 webservers.
-
-Our experience (running such Web servers as <A
- HREF="http://altavista.digital.com">altavista.digital.com</A>
-and <A HREF="http://www.digital.com"
- >www.digital.com</A>) is that there is one important kernel tuning
-knob to adjust in order to get good performance on V3.2C. You
-need to patch the kernel global variable "somaxconn" (use dbx -k
-to do this) from its default value of 8 to something much larger.
-
-How much larger? Well, no larger than 32767 (decimal). And
-probably no less than about 2048, if you have a really high volume
-(millions of hits per day), like AltaVista does.
-
-This change allows the system to maintain more than 8 TCP
-connections in the SYN_RCVD state for the HTTP server. (You
-can use "netstat -An |grep SYN_RCVD" to see how many such
-connections exist at any given instant).
-
-If you don't make this change, you might find that as the load gets
-high, some connection attempts take a very long time. And if a lot
-of your clients disconnect from the Internet during the process of
-TCP connection establishment (this happens a lot with dialup
-users), these "embryonic" connections might tie up your somaxconn
-quota of SYN_RCVD-state connections. Until the kernel times out
-these embryonic connections, no other connections will be accepted,
-and it will appear as if the server has died.
-
-The default value for somaxconn in Digital UNIX V4.0 will be quite
-a bit larger than it has been in previous versions (we inherited
-this default from 4.3BSD).
-
-Digital UNIX V4.0 includes some other performance-related changes
-that significantly improve its maximum HTTP connection rate. However,
-we've been using V3.2C systems to front-end for altavista.digital.com
-with no obvious performance bottlenecks at the millions-of-hits-per-day
-level.
-
-We have some Webstone performance results available at
- http://www.digital.com/info/alphaserver/news/webff.html
-
-<EM>[The document referenced above is no longer at that URL -- Ed.]</EM>
-
-I'm not sure if these were done using V4.0 or an earlier version
-of Digital UNIX, although I suspect they were done using a test
-version of V4.0.
-
--Jeff
-</pre>
-
-<HR>
-
-<pre>----------------------------------------------------------------------------
-
-From mogul@pa.dec.com (Jeffrey Mogul)
-Organization DEC Western Research
-Date 31 May 1996 21:01:01 GMT
-Newsgroups <A HREF="news:comp.unix.osf.osf1">comp.unix.osf.osf1</A>
-Message-ID <4onmmd$mmd@usenet.pa.dec.com>
-Subject Digital UNIX V3.2C Internet tuning patch info
-
-----------------------------------------------------------------------------
-
-Something that probably few people are aware of is that Digital
-has a patch kit available for Digital UNIX V3.2C that may improve
-Internet performance, especially for busy web servers.
-
-This patch kit is one way to increase the value of somaxconn,
-which I discussed in a message here a day or two ago.
-
-I've included in this message the revised README file for this
-patch kit below. Note that the original README file in the patch
-kit itself may be an earlier version; I'm told that the version
-below is the right one.
-
-Sorry, this patch kit is NOT available for other versions of Digital
-UNIX. Most (but not quite all) of these changes also made it into V4.0,
-so the description of the various tuning parameters in this README
-file might be useful to people running V4.0 systems.
-
-This patch kit does not appear to be available (yet?) from
- <A HREF="http://www.service.digital.com/html/patch_service.html"
- >http://www.service.digital.com/html/patch_service.html</A>
-so I guess you'll have to call Digital's Customer Support to get it.
-
--Jeff
-
-DESCRIPTION: Digital UNIX Network tuning patch
-
- Patch ID: OSF350-146
-
- SUPERSEDED PATCHES: OSF350-151, OSF350-158
-
- This set of files improves the performance of the network
- subsystem on a system being used as a web server. There are
- additional tunable parameters included here, to be used
- cautiously by an informed system administrator.
-
-TUNING
-
- To tune the web server, the number of simultaneous socket
- connection requests are limited by:
-
- somaxconn Sets the maximum number of pending requests
- allowed to wait on a listening socket. The
- default value in Digital UNIX V3.2 is 8.
- This patch kit increases the default to 1024,
- which matches the value in Digital UNIX V4.0.
-
- sominconn Sets the minimum number of pending connections
- allowed on a listening socket. When a user
- process calls listen with a backlog less
- than sominconn, the backlog will be set to
- sominconn. sominconn overrides somaxconn.
- The default value is 1.
-
- The effectiveness of tuning these parameters can be monitored by
- the sobacklog variables available in the kernel:
-
- sobacklog_hiwat Tracks the maximum pending requests to any
- socket. The initial value is 0.
-
- sobacklog_drops Tracks the number of drops exceeding the
- socket set backlog limit. The initial
- value is 0.
-
- somaxconn_drops Tracks the number of drops exceeding the
- somaxconn limit. When sominconn is larger
- than somaxconn, tracks the number of drops
- exceeding sominconn. The initial value is 0.
-
- TCP timer parameters also affect performance. Tuning the following
- require some knowledge of the characteristics of the network.
-
- tcp_msl Sets the tcp maximum segment lifetime.
- This is the maximum lifetime in half
- seconds that a packet can be in transit
- on the network. This value, when doubled,
- is the length of time a connection remains
- in the TIME_WAIT state after a incoming
- close request is processed. The unit is
- specified in 1/2 seconds, the initial
- value is 60.
-
- tcp_rexmit_interval_min
- Sets the minimum TCP retransmit interval.
- For some WAN networks the default value may
- be too short, causing unnecessary duplicate
- packets to be sent. The unit is specified
- in 1/2 seconds, the initial value is 1.
-
- tcp_keepinit This is the amount of time a partially
- established connection will sit on the listen
- queue before timing out (<EM>e.g.</EM>, if a client
- sends a SYN but never answers our SYN/ACK).
- Partially established connections tie up slots
- on the listen queue. If the queue starts to
- fill with connections in SYN_RCVD state,
- tcp_keepinit can be decreased to make those
- partial connects time out sooner. This should
- be used with caution, since there might be
- legitimate clients that are taking a while
- to respond to SYN/ACK. The unit is specified
- in 1/2 seconds, the default value is 150
- (ie. 75 seconds).
-
- The hashlist size for the TCP inpcb lookup table is regulated by:
-
- tcbhashsize The number of hash buckets used for the
- TCP connection table used in the kernel.
- The initial value is 32. For best results,
- should be specified as a power of 2. For
- busy Web servers, set this to 2048 or more.
-
- The hashlist size for the interface alias table is regulated by:
-
- inifaddr_hsize The number of hash buckets used for the
- interface alias table used in the kernel.
- The initial value is 32. For best results,
- should be specified as a power of 2.
-
- ipport_userreserved The maximum number of concurrent non-reserved,
- dynamically allocated ports. Default range
- is 1025-5000. The maximum value is 65535.
- This limits the number of times you can
- simultaneously telnet or ftp out to connect
- to other systems.
-
- tcpnodelack Don't delay acknowledging TCP data; this
- can sometimes improve performance of locally
- run CAD packages. Default is value is 0,
- the enabled value is 1.
-
- Digital UNIX version:
-
- V3.2C
-Feature V3.2C patch V4.0
-======= ===== ===== ====
-somaxconn X X X
-sominconn - X X
-sobacklog_hiwat - X -
-sobacklog_drops - X -
-somaxconn_drops - X -
-tcpnodelack X X X
-tcp_keepidle X X X
-tcp_keepintvl X X X
-tcp_keepcnt - X X
-tcp_keepinit - X X
-TCP keepalive per-socket - - X
-tcp_msl - X -
-tcp_rexmit_interval_min - X -
-TCP inpcb hashing - X X
-tcbhashsize - X X
-interface alias hashing - X X
-inifaddr_hsize - X X
-ipport_userreserved - X -
-sysconfig -q inet - - X
-sysconfig -q socket - - X
-</PRE>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Hints on Running a High-Performance Web Server</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Hints on Running a High-Performance Web Server</H1>
-
-Running Apache on a heavily loaded web server, one often encounters
-problems related to the machine and OS configuration. "Heavy" is
-relative, of course - but if you are seeing more than a couple hits
-per second on a sustained basis you should consult the pointers on
-this page. In general the suggestions involve how to tune your kernel
-for the heavier TCP load, hardware/software conflicts that arise, <EM>etc.</EM>
-
-<UL>
-<LI><A HREF="#AUX">A/UX (Apple's UNIX)</A>
-<LI><A HREF="#BSD">BSD-based (BSDI, FreeBSD, etc)</A>
-<LI><A HREF="#DEC">Digital UNIX</A>
-<LI><A HREF="perf-hp.html">HPUX</A>
-<LI><A HREF="#Linux">Linux</A>
-<LI><A HREF="#Solaris">Solaris</A>
-<LI><A HREF="#SunOS">SunOS 4.x</A>
-<LI><A HREF="#SVR4">SVR4</A>
-</UL>
-
-<HR>
-
-<H3><A NAME="AUX">
-A/UX (Apple's UNIX)
-</A></H3>
-
-If you are running Apache on A/UX, a page that gives some helpful
-performance hints (concerning the <EM>listen()</EM> queue and using
-virtual hosts)
-<A HREF="http://www.jaguNET.com/apache.html">can be found here</A>
-
-<P><HR>
-
-<H3><A NAME="BSD">
-BSD-based (BSDI, FreeBSD, etc)
-</A></H3>
-
-<A HREF="perf-bsd44.html#initial">Quick</A> and
-<A HREF="perf-bsd44.html#detail">detailed</A>
-performance tuning hints for BSD-derived systems.
-
-<P><HR>
-
-<H3><A NAME="DEC">
-Digital UNIX
-</A></H3>
-
-<UL>
- <LI><A
- HREF="http://www.digital.com/info/internet/document/ias/tuning.html"
- >DIGITAL UNIX Tuning Parameters for Web Servers</A>
- <LI>We have some <A HREF="perf-dec.html">newsgroup postings</A> on how
- to tune Digital UNIX 3.2 and 4.0.
-</UL>
-
-<P><HR>
-
-<H3><A NAME="Linux">
-Linux
-</A></H3>
-
-There are no known problems with heavily loaded systems running Linux
-kernels 2.0.32 or later. Earlier kernels have some problems, and an
-upgrade to the latest 2.0.x is a good idea to eliminate various security
-and denial of service attacks.
-
-<P><HR>
-
-<H3><A NAME="Solaris">
-Solaris 2.4
-</A></H3>
-
-The Solaris 2.4 TCP implementation has a few inherent limitations that
-only became apparent under heavy loads. This has been fixed to some
-extent in 2.5 (and completely revamped in 2.6), but for now consult
-the following URL for tips on how to expand the capabilities if you
-are finding slowdowns and lags are hurting performance.
-
-<P>
-
-Other links:
-
-<UL>
-
-<LI><A HREF="http://www.sun.com/sun-on-net/performance.html">
-World Wide Web Server Performance,
-<http://www.sun.com/sun-on-net/performance.html></A>
-<LI><A HREF="http://www.rvs.uni-hannover.de/people/voeckler/tune/EN/tune.html">
-Solaris 2.x - tuning your TCP/IP stack</A> contains some good technical
-information about tuning various Solaris TCP/IP parameters.
-</UL>
-
-<P><HR>
-
-<H3><A NAME="SunOS">
-SunOS 4.x
-</A></H3>
-
-More information on tuning SOMAXCONN on SunOS can be found at
-<A HREF="http://www.islandnet.com/~mark/somaxconn.html">
-http://www.islandnet.com/~mark/somaxconn.html</A>.
-
-<P><HR>
-
-<H3><A NAME="SVR4">
-SVR4
-</A></H3>
-
-Some SVR4 versions waste three system calls on every
-<SAMP>gettimeofday()</SAMP> call. Depending on the syntactic
-form of the <SAMP>TZ</SAMP> environment variable, these
-systems have several different algorithms to determine the
-local time zone (presumably <EM>compatible</EM> with
-something). The following example uses the central european
-time zone to demonstrate this:
-<DL>
- <DT><STRONG>TZ=:MET</STRONG>
- <DD>This form delegates the knowledge of the time zone
- information to an external compiled zoneinfo file
- (à la BSD).<BR>
- <STRONG>Caveat:</STRONG> Each time the gettimeofday()
- function is called, the external zone info is read in
- again (at least on some SVR4 systems). That results in
- three wasted system calls with every apache request
- served.<PRE>
- open("/usr/lib/locale/TZ/MET", O_RDONLY) = 3
- read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 7944) = 778
- close(3) = 0</PRE>
-
- <DT><STRONG>TZ=MET-1MDT,M3.5.0/02:00:00,M10.5.0/03:00:00</STRONG>
- <DD>This syntax form (à la SYSV) contains all the
- knowledge about time zone beginning and ending times in
- its external representation. It has to be parsed each
- time it is evaluated, resulting in a slight computing
- overhead, but it requires no system call. Though the
- table lookup à la BSD is the more sophisticated
- technical solution, the bad SVR4 implementation makes
- this the preferred syntax on systems which otherwise
- access the external zone info file repeatedly.
-</DL>
-You should use the <SAMP>truss</SAMP> utility on a
-single-process apache server (started with the <SAMP>-X</SAMP>
-debugging switch) to determine whether your system can profit
-from the second form of the <SAMP>TZ</SAMP> environment
-variable. If it does, you could integrate the setting of the
-preferred <SAMP>TZ</SAMP> syntax into the httpd startup
-script, which is usually simply a copy of (or symbolic link
-to) the <SAMP>apachectl</SAMP> utility script, or into the
-system's <SAMP>/etc/TIMEZONE</SAMP> script.
-
-<P><HR>
-
-<H3>More welcome!</H3>
-
-If you have tips to contribute, send mail to <A
-HREF="mailto:apache@apache.org">apache@apache.org</A>
-
-<!--#include virtual="footer.html" -->
-</BODY></HTML>
-
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>The Apache TPF Port</TITLE>
-</HEAD>
-<BODY>
-<A NAME="top"></A>
-<blockquote><strong>Warning:</strong>
-This document has not been updated to take into account changes
-made in the 2.0 version of the Apache HTTP Server. Some of the
-information may still be relevant, but please use it
-with care.
-</blockquote>
-<H1 align="center">Overview of the Apache TPF Port</H1>
-<HR>
-<CENTER>[ <A HREF="#configuration_files">Configuration Files</A>
- | <A HREF="#whats_available">What's Available</A>
- | <A HREF="#porting_notes">Porting Notes</A> ]
-</CENTER>
-<HR>
-<BR>
-
-<P>
- This version of Apache includes changes allowing it to run on
- IBM's EBCDIC-based
- <A HREF="http://www.s390.ibm.com/products/tpf/tpfhp.html">TPF</A>
- (Transaction Processing Facility) operating system.
- Unless otherwise noted TPF version 4.1 PUT09 is required.
- <BR><BR>
- Refer to htdocs/manual/<A HREF="../install-tpf.html">install-tpf.html</A>
- for step-by-step installation instructions.
- <BR><BR>
- As this is the first cut at making Apache run on TPF,
- performance tuning has not been done.
- <BR><BR>
- This port builds upon the <A HREF="../ebcdic.html">EBCDIC changes</A>
- previously made to Apache.
- <BR>
-</P>
-
-<A NAME="configuration_files"> </A>
-<H2 align=center>Apache Configuration Files</H2>
-<P>
- The distributed configuration files (httpd.conf-dist and
- mime.types, both located in the conf subdirectory)
- work on TPF. Performance considerations may dictate setting KeepAlive to "Off"
- (the default is "On") or lowering the Timeout value from the default
- 300 seconds (5 minutes) in order to reduce the number of active ECBs on your system.
-</P>
-
-<A NAME="whats_available"> </A>
-<H2 align=center>What's Available in this Version</H2>
-
- (The Apache organization provides
- <A HREF="http://www.apache.org/docs/">online documentation</A>
- describing the various modules and components of the server.)
-
-<H3>Components/modules tested on TPF:</H3>
-
- <multicol COLS=3><UL>
- <LI>alloc.c
- <LI>ap_base64.c
- <LI>ap_checkpass.c
- <LI>ap_cpystrn.c
- <LI>ap_fnmatch.c
- <LI>ap_md5c.c
- <LI>ap_sha1.c
- <LI>ap_signal.c
- <LI>ap_slack.c
- <LI>ap_snprintf.c
- <LI>buff.c
- <LI>buildmark.c
- <LI>ebcdic.c
- <LI>gen_test.char.c
- <LI>gen_uri_delims.c
- <LI>htpasswd.c <i><small>(requires PUT10)</small></i>
- <LI>http_config.c
- <LI>http_core.c
- <LI>http_log.c
- <LI>http_main.c
- <LI>http_protocol.c
- <LI>http_request.c
- <LI>http_vhost.c
- <LI>logresolve.c <i><small>(requires PUT10)</small></i>
- <LI>mod_access.c <A HREF="#notes"> <i><small>(see note 1)</small></i></A>
- <LI>mod_actions.c
- <LI>mod_alias.c
- <LI>mod_asis.c
- <LI>mod_auth.c
- <LI>mod_auth_anon.c
- <LI>mod_autoindex.c
- <LI>mod_cern_meta.c
- <LI>mod_cgi.c <i><small>(requires PUT10)</small></i>
- <LI>mod_digest.c
- <LI>mod_dir.c
- <LI>mod_env.c
- <LI>mod_example.c
- <LI>mod_expires.c
- <LI>mod_headers.c
- <LI>mod_imap.c
- <LI>mod_include.c <A HREF="#notes"> <i><small>(see note 2)</small></i></A>
- <LI>mod_info.c
- <LI>mod_log_agent.c
- <LI>mod_log_config.c
- <LI>mod_log_referer.c
- <LI>mod_mime.c
- <LI>mod_mime_magic.c
- <LI>mod_negotiation.c
- <LI><A HREF="http://hpwww.ec-lyon.fr/~vincent/apache/mod_put.html">mod_put.c</A>
- <i> <small>(third party module)</small></i>
- <LI>mod_proxy.c
- <LI>mod_setenvif.c
- <LI>mod_speling.c
- <LI>mod_status.c
- <LI>mod_tpf_shm_static.c <i><small>(third party module, requires PUT10)</small></i>
- <LI>mod_unique_id.c <i><small>(requires PUT10)</small></i>
- <LI>mod_userdir.c
- <LI>mod_usertrack.c
- <LI>os.c
- <LI>os-inline.c
- <LI>proxy_cache.c
- <LI>proxy_connect.c
- <LI>proxy_ftp.c
- <LI>proxy_http.c
- <LI>proxy_util.c
- <LI>regular expression parser
- <LI>regular expression test tool <i><small>(requires PUT10)</small></i>
- <LI>rfc1413.c
- <LI>rotatelogs.c <i><small>(requires PUT10)</small></i>
- <LI>util.c
- <LI>util_date.c
- <LI>util_md5.c
- <LI>util_script.c
- <LI>util_uri.c
- </UL></MULTICOL>
- <A NAME="notes"></A><b>Notes:</b>
- <ol>
- <li>Use of mod_access directives "<tt>Allow from</tt>" & "<tt>Deny from</tt>"
- with host <i>names</i> (verses ip addresses) requires TPF version 4.1 PUT10
- <li>CGI execution requires TPF version 4.1 PUT10
- </ol>
-
-<H3>Components/modules not yet supported on TPF:</H3>
-
- <multicol COLS=3><UL>
- <LI>htdigest.c
- <LI>lib/expat-lite
- <LI>mod_auth_digest.c
- <LI>mod_rewrite.c
- <LI>mod_vhost_alias.c
- </UL></MULTICOL>
-
-<H3>Components/modules that don't apply or that probably won't ever be available on TPF:</H3>
-
- <multicol COLS=3><UL>
- <LI>ab.c
- <LI>ap_getpass.c
- <LI>mod_auth_db.c
- <LI>mod_auth_dbm.c
- <LI>mod_auth_db.module
- <LI>mod_mmap_static.c
- <LI>mod_so.c
- <LI>suexec.c
- </UL></MULTICOL>
-
-<A NAME="porting_notes"> </A>
-<H2 align=center>Porting Notes</H2>
-<P>
- <H3>Changes made due to differences between UNIX and
- TPF's process models:</H3>
- <UL>
- <LI><STRONG>Signals</STRONG>: On TPF a signal that is sent to a process
- remains unhandled until the process explicitly requests that signals
- be handled using the <CODE>tpf_process_signals()</CODE> function.
- Additionally, the default action for an alarm on TPF is to take
- an OPR-7777 dump and exit. (On UNIX the default is the equivalent
- of <CODE>exit()</CODE> with no dump taken.)
- These differences necessitated a few modifications:
- <BR><BR>
- <UL>
- <LI>bypass the use of <CODE>ap_block_alarms()</CODE> &
- <CODE>ap_unblock_alarms()</CODE>
- <LI>add <CODE>tpf_process_signals()</CODE> calls
- <LI>add <CODE>select()</CODE> calls to prevent blocking.
- </UL>
- <BR>
- </UL>
-
- <H3>Find that function...</H3>
- <P>Some simple functions & definitions initially needed to be added
- on TPF, such as <CODE>FD_SET()</CODE>.
- We've put these in src/os/tpf/os.h for now.
- </P>
-
- <H3>EBCDIC changes:</H3>
- <P>TPF-specific conversion tables between US-ASCII and
- EBCDIC (character set IBM-1047 to be exact) were created
- and put into ebcdic.c in the src/os/tpf directory.
- </P>
-
- <H3>Miscellaneous, minor changes:</H3>
- <P>Various minor changes (such as casting) were made due to
- differences in how some functions are implemented on TPF.
- </P>
-
-<HR>
-<CENTER>[ <A HREF="#top">top</A>
- | <A HREF="#configuration_files">Configuration Files</A>
- | <A HREF="#whats_available">What's Available</A>
- | <A HREF="#porting_notes">Porting Notes</A> ]
-</CENTER>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Compiling Apache under UnixWare</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-
-<blockquote><strong>Warning:</strong>
-This document has not been updated to take into account changes
-made in the 2.0 version of the Apache HTTP Server. Some of the
-information may still be relevant, but please use it
-with care.
-</blockquote>
-
-<H1 ALIGN="CENTER">Compiling Apache under UnixWare</H1>
-
-To compile a working copy of Apache under UnixWare, there are several other
-steps you may need to take. These prevent such problems as zombie processes,
-bind errors, and accept errors, to name a few.
-
-<H2>UnixWare 1.x</H2>
-
-Make sure that USE_FCNTL_SERIALIZE_ACCEPT is defined (if not
-defined by Apache autoconfiguration). If using the UnixWare <EM>cc</EM>
-compiler, and you still see accept() errors, don't use compiler optimization,
-or get <EM>gcc</EM>.
-
-<H2>UnixWare 2.0.x</H2>
-
-SCO patch <A HREF="ftp://ftp.sco.com/UW20/tf2163.txt">tf2163</A> is required
-in order for Apache to work correctly on UnixWare 2.0.x. See
-<A HREF="http://www.sco.com">http://www.sco.com</A>
-for UnixWare patch information.<P>
-
-In addition, make sure that USE_FCNTL_SERIALIZE_ACCEPT is defined (if not
-defined by Apache autoconfiguration). To reduce instances of connections
-in FIN_WAIT_2 state, you may also want to define NO_LINGCLOSE (Apache 1.2
-only).
-
-<H2>UnixWare 2.1.x</H2>
-
-SCO patch <A HREF="ftp://ftp.sco.com/UW21/ptf3123b.txt">ptf3123</A> is required
-in order for Apache to work correctly on UnixWare 2.1.x. See
-<A HREF="http://www.sco.com">http://www.sco.com</A>
-for UnixWare patch information.<P>
-
-<STRONG>NOTE:</STRONG> Unixware 2.1.2 and later already have patch ptf3123
-included<P>
-
-In addition, make sure that USE_FCNTL_SERIALIZE_ACCEPT is defined (if not
-defined by Apache autoconfiguration). To reduce instances of connections
-in FIN_WAIT_2 state, you may also want to define NO_LINGCLOSE (Apache 1.2
-only).<P>
-
-Thanks to Joe Doupnik <JRD@cc.usu.edu> and Rich Vaughn
-<rvaughn@aad.com> for additional info for UnixWare builds.<P>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML><HEAD>
-<TITLE>Server Pool Management</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-
-<blockquote><strong>Warning:</strong>
-This document has not been updated to take into account changes
-made in the 2.0 version of the Apache HTTP Server. Some of the
-information may still be relevant, but please use it
-with care.
-</blockquote>
-
-<H1 ALIGN="CENTER">Server Pool Management</H1>
-
-<HR>
-<P>
-We found that many people were using values for "MaxServers" either
-too high or too low, and were hanging themselves on it. The model we
-adopted is still based on long-lived minimal-forking processes, but
-instead of specifying one number of persistent processes, the
-web-master specifies a maximum and minimum number of processes to be
-"spare" - every couple of seconds the parent checks the actual number
-of spare servers and adjusts accordingly. This should keep the number
-of servers concurrently running relatively low while still ensuring
-minimal forking.
-
-<P>
-
-We renamed the current StartServers to MinSpareServers, created
-separate StartServers parameter which means what it says, and renamed
-MaxServers to MaxSpareServers (though the old name still works, for
-NCSA 1.4 back-compatibility). The old names were generally regarded
-as too confusing.
-
-<P>
-
-The defaults for each variable are:
-
-<PRE>
-MinSpareServers 5
-MaxSpareServers 10
-StartServers 5
-</PRE>
-
-There is an absolute maximum number of simultaneous children defined
-by a compile-time limit which defaults to 256 and a "MaxClients"
-directive which specifies the number of simultaneous children that
-will be allowed. MaxClients can be adjusted up to the compile-time
-limit (HARD_SERVER_LIMIT, defined in httpd.h). If you need more
-than 256 simultaneous children, you need to modify both HARD_SERVER_LIMIT
-and MaxClients.<P>
-
-In versions before 1.2, HARD_SERVER_LIMIT defaulted to 150.<P>
-
-We do not recommend changing either of these values unless:
-
-<OL>
-<LI>You know you have the server resources to handle more
-<LI>You use the machine for other purposes and must limit the amount of memory
-Apache uses
-</OL>
-
-<!--#include virtual="footer.html" -->
-</BODY></HTML>
-
-