diff options
author | (no author) <(no author)@unknown> | 2001-05-04 21:54:25 +0000 |
---|---|---|
committer | (no author) <(no author)@unknown> | 2001-05-04 21:54:25 +0000 |
commit | ad2dd84025f628d29200b5a9a41d654be678aa6f (patch) | |
tree | 35a838b6e9d6510a91e386728e78b4a81cb55781 /docs/manual/platform | |
parent | f83672781de25207442ff908258219de1d103062 (diff) | |
download | httpd-RSE.tar.gz |
This commit was manufactured by cvs2svn to create branch 'RSE'.RSE
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/RSE@88989 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/platform')
-rw-r--r-- | docs/manual/platform/footer.html | 8 | ||||
-rw-r--r-- | docs/manual/platform/header.html | 6 | ||||
-rw-r--r-- | docs/manual/platform/netware.html | 285 | ||||
-rw-r--r-- | docs/manual/platform/perf-bsd44.html | 262 | ||||
-rw-r--r-- | docs/manual/platform/perf-dec.html | 286 | ||||
-rw-r--r-- | docs/manual/platform/perf-hp.html | 122 | ||||
-rw-r--r-- | docs/manual/platform/perf.html | 175 | ||||
-rw-r--r-- | docs/manual/platform/readme-tpf.html | 214 | ||||
-rw-r--r-- | docs/manual/platform/unixware.html | 69 | ||||
-rw-r--r-- | docs/manual/platform/win_compiling.html | 180 | ||||
-rw-r--r-- | docs/manual/platform/win_service.html | 325 | ||||
-rw-r--r-- | docs/manual/platform/windows.html | 514 |
12 files changed, 0 insertions, 2446 deletions
diff --git a/docs/manual/platform/footer.html b/docs/manual/platform/footer.html deleted file mode 100644 index 1e5f739ebe..0000000000 --- a/docs/manual/platform/footer.html +++ /dev/null @@ -1,8 +0,0 @@ -<HR> - -<H3 ALIGN="CENTER"> - Apache HTTP Server Version 2.0 -</H3> - -<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A> -<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A> diff --git a/docs/manual/platform/header.html b/docs/manual/platform/header.html deleted file mode 100644 index 9533b02bda..0000000000 --- a/docs/manual/platform/header.html +++ /dev/null @@ -1,6 +0,0 @@ -<DIV ALIGN="CENTER"> - <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]"> - <H3> - Apache HTTP Server Version 2.0 - </H3> -</DIV> diff --git a/docs/manual/platform/netware.html b/docs/manual/platform/netware.html deleted file mode 100644 index 6e3aa68b0a..0000000000 --- a/docs/manual/platform/netware.html +++ /dev/null @@ -1,285 +0,0 @@ -<!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> - diff --git a/docs/manual/platform/perf-bsd44.html b/docs/manual/platform/perf-bsd44.html deleted file mode 100644 index dd94d677e0..0000000000 --- a/docs/manual/platform/perf-bsd44.html +++ /dev/null @@ -1,262 +0,0 @@ -<!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> - diff --git a/docs/manual/platform/perf-dec.html b/docs/manual/platform/perf-dec.html deleted file mode 100644 index e2b8c30d2b..0000000000 --- a/docs/manual/platform/perf-dec.html +++ /dev/null @@ -1,286 +0,0 @@ -<!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> diff --git a/docs/manual/platform/perf-hp.html b/docs/manual/platform/perf-hp.html deleted file mode 100644 index ca902a09fe..0000000000 --- a/docs/manual/platform/perf-hp.html +++ /dev/null @@ -1,122 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> -<HTML> -<HEAD> -<TITLE>Running a High-Performance Web Server on HPUX</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"> </A> -<!--#include virtual="header.html" --> - -<H1 ALIGN="CENTER">Running a High-Performance Web Server for HPUX</H1> - -<PRE> -Date: Wed, 05 Nov 1997 16:59:34 -0800 -From: Rick Jones <<A HREF="mailto:raj@cup.hp.com">raj@cup.hp.com</A>> -Reply-To: raj@cup.hp.com -Organization: Network Performance -Subject: HP-UX tuning tips -</PRE> - -Here are some tuning tips for HP-UX to add to the tuning page. - -<P> - -For HP-UX 9.X: Upgrade to 10.20<BR> -For HP-UX 10.[00|01|10]: Upgrade to 10.20 - -<P> - -For HP-UX 10.20: - -<P> - -Install the latest cumulative ARPA Transport Patch. This will allow you -to configure the size of the TCP connection lookup hash table. The -default is 256 buckets and must be set to a power of two. This is -accomplished with adb against the *disc* image of the kernel. The -variable name is tcp_hash_size. - -Notice that it's critically important that you use "W" to write a 32 bit -quantity, not "w" to write a 16 bit value when patching the disc image because -the tcp_hash_size variable is a 32 bit quantity. - -<P> - -How to pick the value? Examine the output of -<A HREF="ftp://ftp.cup.hp.com/dist/networking/tools/connhist"> -ftp://ftp.cup.hp.com/dist/networking/tools/connhist</A> and see how many -total TCP connections exist on the system. You probably want that number -divided by the hash table size to be reasonably small, say less than 10. -Folks can look at HP's SPECweb96 disclosures for some common settings. -These can be found at <A HREF="http://www.specbench.org/"> -http://www.specbench.org/</A>. If an HP-UX system was -performing at 1000 SPECweb96 connections per second, the TIME_WAIT time -of 60 seconds would mean 60,000 TCP "connections" being tracked. - -<P> - -Folks can check their listen queue depths with -<A HREF="ftp://ftp.cup.hp.com/dist/networking/misc/listenq"> -ftp://ftp.cup.hp.com/dist/networking/misc/listenq</A>. - -<P> - -If folks are running Apache on a PA-8000 based system, they should -consider "chatr'ing" the Apache executable to have a large page size. -This would be "chatr +pi L <BINARY>." The GID of the running executable -must have MLOCK privileges. Setprivgrp(1m) should be consulted for -assigning MLOCK. The change can be validated by running Glance and -examining the memory regions of the server(s) to make sure that they -show a non-trivial fraction of the text segment being locked. - -<P> - -If folks are running Apache on MP systems, they might consider writing a -small program that uses mpctl() to bind processes to processors. A -simple pid % numcpu algorithm is probably sufficient. This might even go -into the source code. - -<P> - -If folks are concerned about the number of FIN_WAIT_2 connections, they -can use nettune to shrink the value of tcp_keepstart. However, they -should be careful there - certainly do not make it less than oh two to -four minutes. If tcp_hash_size has been set well, it is probably OK to -let the FIN_WAIT_2's take longer to timeout (perhaps even the default -two hours) - they will not on average have a big impact on performance. - -<P> - -There are other things that could go into the code base, but that might -be left for another email. Feel free to drop me a message if you or -others are interested. - -<P> - -sincerely, - -<P> - -rick jones<BR> -<A HREF="http://www.cup.hp.com/netperf/NetperfPage.html"> -http://www.cup.hp.com/netperf/NetperfPage.html</A> - -<HR> - -<H3 ALIGN="CENTER"> - Apache HTTP Server Version 1.3 -</H3> - -<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A> -<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A> - -</BODY></HTML> - diff --git a/docs/manual/platform/perf.html b/docs/manual/platform/perf.html deleted file mode 100644 index 73bd5b5b20..0000000000 --- a/docs/manual/platform/perf.html +++ /dev/null @@ -1,175 +0,0 @@ -<!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> - diff --git a/docs/manual/platform/readme-tpf.html b/docs/manual/platform/readme-tpf.html deleted file mode 100644 index 6c89faee64..0000000000 --- a/docs/manual/platform/readme-tpf.html +++ /dev/null @@ -1,214 +0,0 @@ -<!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> diff --git a/docs/manual/platform/unixware.html b/docs/manual/platform/unixware.html deleted file mode 100644 index cdb8c6a6b6..0000000000 --- a/docs/manual/platform/unixware.html +++ /dev/null @@ -1,69 +0,0 @@ -<!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> diff --git a/docs/manual/platform/win_compiling.html b/docs/manual/platform/win_compiling.html deleted file mode 100644 index 0f854bea25..0000000000 --- a/docs/manual/platform/win_compiling.html +++ /dev/null @@ -1,180 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> -<HTML> -<HEAD> -<TITLE>Compiling Apache for Microsoft Windows</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">Compiling Apache for Microsoft Windows</H1> - -<P>There are many important points before you begin compiling Apache. - See <A HREF="windows.html">Using Apache with Microsoft Windows</A> - before you begin.</P> - -<P>Compiling Apache requires Microsoft Visual C++ 5.0 (or later) to be - properly installed. It is easiest to compile with the command-line tools - (nmake, <EM>etc.</EM>..). Consult the VC++ manual to determine how to install - them. Be especially aware that the vcvars32.bat file from the - Program Files/DevStudio/VC/bin folder may be required to prepare the - command-line environment for command-line builds!</P> - -<P>First, unpack the Apache distribution into an appropriate - directory. Open a command-line prompt and cd to that directory.</P> - -<P>The master Apache makefile instructions are contained in the - <CODE>Makefile.win</CODE> file. To compile Apache on Windows, simply - use one of the following commands:<P> -<UL> -<LI><CODE>nmake /f Makefile.win _apacher</CODE> (release build) -<LI><CODE>nmake /f Makefile.win _apached</CODE> (debug build) -</UL> - -<P>These will both compile Apache. The latter will include debugging - information in the resulting files, making it easier to find bugs and - track down problems.</P> - -<P>Apache can also be compiled using VC++'s VisualStudio development - environment. To simplify this process, a VisualStudio workspace, - Apache.dsw, is provided. This workspace exposes - the entire list of working .dsp projects that are required for the - complete Apache binary release. It includes dependencies between - the projects to assure that they are built in the appropriate order.</P> - -<P><STRONG>Notice: The Apache/VisualStudio project files are distributed - in VisualStudio 6.0 (98) format.</STRONG> In fact you may build with - VisualStudio 5.0 (97) but you must first use the perl script command:</P> - -<PRE> - cd srclib\apr\build - cvstodsp5.pl -</PRE> - -<P>Without running the script you will be able to load and build Apache, - however VisualStudio 97 in particular will not recognize the /ZI flag - to the C compiler for the debugging mode. This script toggles the - new /ZI flag back to /Zi for Debug builds, among other adjustments. - The converse script in <CODE>srclib\apr\build\dsp5tocvs.pl</CODE> will - reverse the adjustments, and we ask you to do so before submitting - patches against any .dsp project files.</P> - -<P>The Apache.dsw workspace and makefile.win nmake script both build the - .dsp projects of the Apache server in the following sequence:</P> - -<OL> - <LI><CODE>srclib\apr\aprlib.dsp</CODE> - <LI><CODE>srclib\apr\aprlibdll.dsp <EM>requires aprlib</EM></CODE> - <LI><CODE>srclib\pcre\dftables.dsp</CODE> - <LI><CODE>srclib\pcre\pcre.dsp <EM>requires dftables</EM></CODE> - <LI><CODE>srclib\pcre\pcreposix.dsp <EM>requires dftables and pcre</EM></CODE> - <LI><CODE>srclib\expat-lite\xmltok.dsp</CODE> - <LI><CODE>srclib\expat-lite\xmlparse.dsp <EM>requires xmltok</EM></CODE> - <LI><CODE>main\gen_uri_delims.dsp</CODE> - <LI><CODE>main\gen_test_char.dsp</CODE> - <LI><CODE>ApacheCore.dsp <EM>requires all of the above</EM></CODE> - <LI><CODE>Apache.dsp <EM>requires ApacheCore and aprlibdll</EM></CODE> -</OL> - - <p>In addition, the <CODE>os\win32</CODE> subdirectory contains - project files for the optional modules.</p> - -<OL> - <LI><CODE>os\win32\ApacheModuleAuthAnon.dsp</CODE> - <LI><CODE>os\win32\ApacheModuleAuthDigest.dsp</CODE> - <LI><CODE>os\win32\ApacheModuleCERNMeta.dsp</CODE> - <LI><CODE>os\win32\ApacheModuleExpires.dsp</CODE> - <LI><CODE>os\win32\ApacheModuleFileCache.dsp</CODE> - <LI><CODE>os\win32\ApacheModuleHeaders.dsp</CODE> - <LI><CODE>os\win32\ApacheModuleInfo.dsp</CODE> - <LI><CODE>os\win32\ApacheModuleRewrite.dsp</CODE> - <LI><CODE>os\win32\ApacheModuleSpeling.dsp</CODE> - <LI><CODE>os\win32\ApacheModuleStatus.dsp</CODE> - <LI><CODE>os\win32\ApacheModuleUserTrack.dsp</CODE> - <LI><CODE>modules\proxy\ApacheModuleProxy.dsp</CODE> -</OL> - - <p>The <CODE>support\</CODE> folder contains project files for additional - programs that are not part of the apache runtime, but are used by - the administrator to test Apache and maintain password and log files.</P> - -<OL> - <LI><CODE>support\ab.dsp</CODE> - <LI><CODE>support\htdigest.dsp</CODE> - <LI><CODE>support\htpasswd.dsp</CODE> - <LI><CODE>support\logresolve.dsp</CODE> - <LI><CODE>support\rotatelogs.dsp</CODE> -</OL> - -<P>Once Apache has been compiled, it needs to be installed in its server - root directory. The default is the <CODE>\Apache</CODE> - directory, on the current hard drive. </P> - -<P>To build and install all the files into the desired folder <EM>dir</EM> - automatically, use one the following nmake commands:</p> - -<UL> - <LI><CODE>nmake /f Makefile.win installr INSTDIR=<EM>dir</EM></CODE> - (for release build) - <LI><CODE>nmake /f Makefile.win installd INSTDIR=<EM>dir</EM></CODE> - (for debug build) -</UL> - - <p>The <EM>dir</EM> argument to INSTDIR gives the installation directory; it - can be omitted if Apache is to be installed into <SAMP>\Apache</SAMP>.</P> - -<P>This will install the following:</P> - -<UL> - <LI><CODE><EM>dir</EM>\Apache.exe</CODE> - Apache executable - <LI><CODE><EM>dir</EM>\aprlib.dll</CODE> - Apache Portable Runtime shared library - <LI><CODE><EM>dir</EM>\ApacheCore.dll</CODE> - Apache Core application - <LI><CODE><EM>dir</EM>\modules\ApacheModule*.dll</CODE> - Loadable Apache - modules - <LI><CODE><EM>dir</EM>\bin\*.exe</CODE> - Administrator support executables - <LI><CODE><EM>dir</EM>\conf</CODE> - Empty configuration directory - <LI><CODE><EM>dir</EM>\logs</CODE> - Empty logging directory -</UL> - -<P>If you do not have nmake, or wish to install in a different directory, - be sure to use a similar naming scheme, or use the following shortcut.</P> - -<P>To simplify the process, dependencies between all projects - are defined in the Microsoft VisualStudio workspace file: - -<PRE> - Apache.dsw -</PRE> - -<P>This assures that lower-level sources are rebuilt from within - VisualStudio. The top level project is InstallBin, which invokes - Makefile.win to move the compiled executables and dlls. You may - personalize the INSTDIR= setting by changing the Settings for - InstallBin, Build command line entry under the General tab. - INSTDIR defaults to the same directory as the httpd source.</P> - -<P><STRONG>Warning about building Apache from the development tree</STRONG></P> - -<P>Only the .dsp files are distributed between release builds. The - .mak files are NOT regenerated, due to the tremendous waste of - reviewer's time. Therefore, you cannot rely on the NMAKE commands - above to build revised .dsp project files unless you then export - all .mak files yourself from the project. This is unnecessary if - you build from within the Microsoft DeveloperStudio environment.</P> - -<P>Before running the server you must fill out the conf directory. - Copy the *.conf-dist-win from the distribution conf directory - and rename *.conf. Edit the @@ServerRoot@@ entries to your - actual server root (for example "C:\apache"). Copy over - the conf/magic and conf/mime.types files as well.</P> - -<!--#include virtual="footer.html" --> -</BODY> -</HTML> diff --git a/docs/manual/platform/win_service.html b/docs/manual/platform/win_service.html deleted file mode 100644 index de031beb6f..0000000000 --- a/docs/manual/platform/win_service.html +++ /dev/null @@ -1,325 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> -<HTML> -<HEAD> -<TITLE>Running Apache for Windows as a Service</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">Running Apache for Windows as a Service</H1> - -<P>Apache can be run as a service on Windows NT/2000. (There is also some - HIGHLY EXPERIMENTAL support for similar behavior on - <a href="#win95svc">Windows 95/98</a>, introduced with Apache 1.3.13).</P> - -<P>Installing Apache as a service should only be done once you can - successfully run it in a console window. See - <A HREF="windows.html">Using Apache with Microsoft Windows</A> - before you attempt to install or run Apache as a service. Changes to the - httpd.conf file should always be followed by starting Apache as a console - window. If this succeeds, the service should succeed.</P> - -<P><STRONG>NOTE: Prior to version 1.3.13, the configuration was <EM>not - tested</EM> prior to performing the installation</STRONG>, and a lack of - service dependencies often caused the console window to succeed, but the - service would still fail. See <A HREF="#service">below</A> if you are - having problems running a version of Apache prior to 1.3.13 to resolve the - issue. If you have this problem with version 1.3.13 or greater, first try - uninstalling (-u) and re-installing (-i) the Apache service.</P> - -<HR> - -<P>To start Apache as a service, you first need to install it as a - service. Multiple Apache services can be installed, each with a - different name and configuration. To install the default Apache - service named "Apache", run the "Install Apache as Service (NT only)" - option from the Start menu. Once this is done you can start the "Apache" - service by opening the Services window (in the Control Panel), selecting - Apache, then clicking on Start. Apache will now be running, hidden in the - background. You can later stop Apache by clicking on Stop. As an - alternative to using the Services window, you can start and stop the - "Apache" service from the command line with</P> - -<PRE> - NET START APACHE - NET STOP APACHE -</PRE> - -<P>See <A HREF="#signal">Controlling Apache as a Service</A> - for more information on installing and controlling Apache services.</P> - -<P><STRONG>Apache, unlike many other Windows NT/2000 services, logs any - errors to it's own error.log file in the logs folder within the - Apache server root folder. You will <EM>not</EM> find Apache error - details in the Windows NT Event Log.</STRONG></P> - -<P>After starting Apache as a service (or if you have trouble starting it) - you can test it using the same <A HREF="windows.html#cmdline">procedure</a> - as for running in a console window. Remember to use the command:</P> - -<PRE> - apache -n "service name" -</PRE> - -<P>to assure you are using the service's configuration.</P> - - -<H2><A NAME="service">Running Apache for Windows as a Service</A></H2> - -<P><STRONG>Note: The -n option to specify a service name is only available - with Apache 1.3.7 and later.</STRONG> Earlier versions of Apache only - support the default service name 'Apache'.</P> - -<P>You can install Apache as a Windows NT service as follows:</P> - -<PRE> - apache -i -n "service name" -</PRE> - -<P>To install a service to use a particular configuration, specify the - configuration file when the service is installed:</P> - -<PRE> - apache -i -n "service name" -f "\my server\conf\my.conf" -</PRE> - -<P>To remove an Apache service, use:</P> - -<PRE> - apache -u -n "service name" -</PRE> - -<P>The default "service name", if one is not specified, is "Apache".</P> - -<P>Once a service is installed, you can use the <SAMP>-n</SAMP> option, in - conjunction with other options, to refer to a service's configuration file. - For example:</P> - -<P>To test a service's configuration file:</P> -<PRE> - apache -n "service name" -t -</PRE> - -<P>To start a console Apache using a service's configuration file:</P> -<PRE> - apache -n "service name" -</PRE> - -<H2><A NAME="depends">Important Note on service dependencies:</A></H2> - -<P>Prior to Apache release 1.3.13, the dependencies required to - successfully start an installed service were not configured. - After installing a service using earlier versions of Apache, - you must follow these steps: - -<PRE> - Run regedt32 - Select <U>W</U>indow - "HKEY_LOCAL_MACHINE on Local Machine" from the menu - Double-click to open the SYSTEM, then the CurrentControlSet keys - Scroll down and click on the Apache servicename - Select <U>E</U>dit - Add <U>V</U>alue... from the menu - Fill in the Add Value dialog with - <U>V</U>alue Name: DependOnGroup - <U>D</U>ata Type: REG_MULTI_SZ - and click OK - Leave the Multi-String Editor dialog empty and click OK - Select <U>E</U>dit - Add <U>V</U>alue... from the menu - Fill in the Add Value dialog with - <U>V</U>alue Name: DependOnService - <U>D</U>ata Type: REG_MULTI_SZ - and click OK - Type the following list (one per line) in the Multi-String Editor dialog - Tcpip - Afd - and click OK -</PRE> - -<P>If you are using COM or DCOM components from a third party module, ISAPI, - or other add-in scripting technologies such as ActiveState Perl, you may - also need to add the entry Rpcss to the DependOnService list. To avoid - exposing the TCP port 135 when it is unnecessary, Apache does not create - that entry upon installation. Follow the directions above to find or - create the DependOnService value, double click that value if it already - exists, and add the Rpcss entry to the list.</P> - - -<H2>User Account for Apache Service to Run As (NT/2000)</H2> - -<P>When Apache is first installed as a service (e.g. with the -i option) - it will run as user "System" (the LocalSystem account). There should - be few issues if all resources for the web server reside on the local - system, but it has broad security privilages to affect the local machine!</P> - -<BLOCKQUOTE> - LocalSystem is a very privileged account locally, so - you shouldn't run any shareware applications there. - However, it has no network privileges and cannot leave - the machine via any NT-secured mechanism, including - file system, named pipes, DCOM, or secure RPC. -</BLOCKQUOTE> - -<P><STRONG>NEVER grant network privilages to the SYSTEM account!</STRONG> - Create a new user account instead, grant the appropriate privilages to - that user, and use the the 'Log On As:' option. Select the Start Menu -> - Settings -> Control Panel -> Services -> apache service ... and click - the "Startup" button to access this setting.</P> - -<BLOCKQUOTE> - A service that runs in the context of the LocalSystem account - inherits the security context of the SCM. It is not associated with - any logged-on user account and does not have credentials (domain name, - user name, and password) to be used for verification. -</BLOCKQUOTE> - -<P>The SYSTEM account has no privilages to the network, so shared pages or - a shared installation of Apache is invisible to the service. If you intend - to use <EM>any</EM> network resources, the following steps should help:</P> - -<UL> -<LI>Select Apache from the Control Panel's Service dialog and click Startup. -<LI>Verify that the service account is correct. You may wish to create an - account for your Apache services. -<LI>Retype the password and password confirmation. -<LI>Go to User Manager for Domains. -<LI>Click on Policies from the title bar menu, and select User Rights. -<LI>Select the option for Advanced User Rights. -<LI>In the drop-down list, verify that the following rights have been - granted to the selected account: - <UL> - <LI>Act as part of the operating system - <LI>Back up files and directories - <LI>Log on as a service - <LI>Restore files and directories - </UL> -<LI>Confirm that the selected account is a member of the Users group. -<LI>Confirm the selected account has access to all document and script - directories (minimally read and browse access). -<LI>Confirm the selected account has read/write/delete access to the Apache - logs directory! -</UL> - -<P>If you allow the account to log in as a user, then you can log in yourself - and test that the account has the privilages to execute the scripts, read - the web pages, and that you can start Apache in a console window. If this - works, and you have followed the steps above, Apache should execute as - a service with no problems.</P> -<P><STRONG>Note: error code 2186</STRONG> is a good indication that you need - to review the 'Log On As' configuration, since the server can't access a - required network resource.</P> - - -<H2><A NAME="trouble">Troubleshooting Apache for Windows as a Service</A></H2> - -<P>When starting Apache as a service you may encounter an error message from - Windows service manager. For example if you try to start Apache using the Services - applet in Windows Control Panel you may get the following message; -<PRE> - Could not start the apache service on \\COMPUTER - Error 1067; The process terminated unexpectedly. -</PRE> -<P>You will get this error if there is any problem starting Apache. In order to see - what is causing the problem you should follow the instructions - for <a href="windows.html#cmdline">Running Apache for Windows from the Command Line</a>.</P> - -<P>Also, Apache 1.3.13 now records startup errors in the Application Event Log - under Windows NT/2000, if Apache is run as a service. Run the Event Viewer - and select <U>L</U>og ... <U>A</U>pplication to see these events. - -<P><STRONG>Check the Application Event Log with the Event Viewer in case of any - problems, even if no error message pops up to warn you that an error - occured.</STRONG></P> - -<H2><A NAME="cmdline">Running Apache for Windows from the Command Line</A></H2> - -For details on controlling Apache service from the command line, please refer to -<a href="windows.html#cmdline">console command line</a> section. - - -<H2><A NAME="signal">Controlling Apache as a Service</A></H2> - -<P>Multiple instances of Apache can be installed and run as services. Signal - an installed Apache service to start, restart, or shutdown/stop - as follows:</P> - -<PRE> - apache -n "service name" -k start - apache -n "service name" -k restart - apache -n "service name" -k shutdown - apache -n "service name" -k stop -</PRE> - -<P>For the default "Apache" service, the -n Apache option is still required, - since the -k commands without the -n option are directed at Apache running - in a console window. The quotes are only required if the service name - contains spaces.</P> - -<P><STRONG>Note: the -k stop alias for the -k shutdown command was introduced - in Apache version 1.3.13.</STRONG> Earlier versions of Apache will only - recognize the -k shutdown option. Prior to 1.3.3, Apache did not recognize - <EM>any</EM> -k options at all!</P> - -<P>In addition, you can use the native NT NET command to - start and stop Apache services as follows:</P> - -<PRE> - NET START "service name" - NET STOP "service name" -</PRE> - -<P>Again, quotes are only required if the service name contains spaces.</P> - -<H2><A NAME="win95svc">HIGHLY EXPERIMENTAL Windows 95/98 Service</A></H2> - -<P><STRONG>Note: The service options for Windows 95 and 98 are only available - with Apache 1.3.13 and later.</STRONG> Earlier versions of Apache only - supported Apache in a console window for Windows 95/98.</P> - -<P>There is some support for Apache on Windows 95/98 to behave in a similar - manner as a service on Windows NT/2000. It is <EM>highly experimental</EM>, - if it works (at all) the Apache Sofware Foundation will not attest to it's - reliability or future support. Proceed at your own risk!</P> - -<P>Once you have confirmed that Apache runs correctly at the - <a href="windows.html#cmdline">Command Prompt</a> you can install, control - and uninstall it with the same commands as the Windows NT/2000 version.</P> - -<P>There are, however, significant differences that you should note:</P> - -<P>Apache will attempt to start and if successful it will run in the - background. If you run the command</p> - -<PRE> - Apache -n "service name" -k start -</PRE> - - <p>via a shortcut on your desktop, for example, then if the service starts - successfully a console window will flash up but immediately disappears. - If Apache detects any errors on startup such as a incorrect entries in the - httpd.conf file, then the console window will remain visible. This will - display an error message which will be useful in tracking down the cause of - the problem.</P> - -<P>Windows 95/98 does not support NET START or NET STOP commands so you must - use Apache's Service Control options at a command prompt. You may wish to - set up a shortcut for each of these commands so that you can just choose - it from the start menu or desktop to perform the required action.</P> - -<P>Apache and Windows 95/98 offer no support for running the Apache service - as a specific user with network privilages. In fact, Windows 95/98 offers - no security on the local machine, either. This is the simple reason that - the Apache Software Foundation never endorses the use of Windows 95/98 as a - public httpd server. These facilities exist only to assist the user in - developing web content and learning the Apache server, and perhaps as a - intranet server on a secured, private network.</P> - -<!--#include virtual="footer.html" --> -</BODY> -</HTML> diff --git a/docs/manual/platform/windows.html b/docs/manual/platform/windows.html deleted file mode 100644 index 325688ab6a..0000000000 --- a/docs/manual/platform/windows.html +++ /dev/null @@ -1,514 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> -<HTML> -<HEAD> -<TITLE>Using Apache with Microsoft Windows</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">Using Apache with Microsoft Windows</H1> - -<P>This document explains how to install, configure and run - Apache 2.0 under Microsoft Windows. If you find any bugs, or wish - to contribute in other ways, please use our - <A HREF="http://www.apache.org/bugs/">bug reporting page.</A></P> - -<P>Most of this document assumes that you are installing Windows from a - binary distribution. If you want to compile Apache yourself (possibly - to help with development, or to track down bugs), see - <A HREF="win_compiling.html">Compiling Apache for Microsoft Windows</A>. - -<HR> - -<UL> - <LI><A HREF="#req">Requirements</A> - <LI><A HREF="#down">Downloading Apache for Windows</A> - <LI><A HREF="#inst">Installing Apache for Windows (binary install)</A> - <LI><A HREF="#run">Running Apache for Windows</A> - <LI><A HREF="#use">Using Apache for Windows</A> - <LI><A HREF="#cmdline">Running Apache for Windows from the Command Line</A> - <LI><A HREF="#service">Running Apache for Windows as a Service</A> - <LI><A HREF="#signal">Signalling Console Apache when running</A> - <LI><A HREF="#signalsrv">Signalling Service Apache when running</A> - <LI><A HREF="win_compiling.html">Compiling Apache for Microsoft Windows</A> -</UL> - -<HR> - -<H2><A NAME="req">Requirements</A></H2> - -<P>Apache 2.0 is designed to run on Windows NT 4.0 and Windows 2000. The - binary installer will only work with the x86 family of processors, such - as Intel's. Apache may also run on Windows 95 and 98, but these have not - been tested, and are never recommended for production servers. In all - cases TCP/IP networking must be installed.</P> - -<P>If running on Windows 95, the "Winsock2" upgrade MUST BE INSTALLED. - "Winsock2" for Windows 95 is available - <A HREF="http://www.microsoft.com/windows95/downloads/">here</A>.</P> - -<P>If running on NT 4.0, installing Service Pack 3 or 6 is recommended, as - Service Pack 4 created known issues with TCPIP/WinSock integrity that - were resolved in later Service Packs.</P> - -<P><STRONG>Warning: as of alpha 2.0a4 Windows 95 (and possibly 98) do not - run at all. Please don't let that stop you, however, from contributing - the fixes required to make that platform run successfully.</STRONG></P> - -<H2><A NAME="down">Downloading Apache for Windows</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/httpd"> - http://www.apache.org/httpd</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>You should download the version of Apache for Windows with the - <CODE>.exe</CODE> extension. This is a single file containing Apache, - ready to install and run. There may also be a <CODE>.zip</CODE> file - containing the source code, to compile Apache yourself. (If there is - no <SAMP>.zip</SAMP> file, the source will be available in a - <SAMP>.tar.gz</SAMP> file but this will contain Unix line endings. You - will have to convert at least the <SAMP>.mak</SAMP> and - <SAMP>.dsp</SAMP> files to have DOS line endings before MSVC will - understand them).</P> - -<P><STRONG>Notice: alpha versions are not distributed in binary form (as - an .exe ready-to-run version). You must use the Microsoft Visual C++ - compiler version 5 or 6 (bundled in VisualStudio 97 and 98). Read - <A HREF="win_compiling.html">Compiling Apache for Microsoft Windows</A> - for compilation/installation instructions.</STRONG></P> - -<H2><A NAME="inst">Installing Apache for Windows</A></H2> - -<P>Run the Apache <SAMP>.exe</SAMP> file you downloaded above. This will - ask for:</P> - -<UL> - - <LI>the directory to install Apache into (the default is - <CODE>\Program Files\Apache Group\Apache</CODE> although you can - change this to any other directory) - - <LI>the start menu name (default is "Apache Web Server") - - <LI>the installation type. The "Typical" option installs - everything except the source code. The "Minimum" option does not - install the manuals or source code. Choose the "Custom" install if - you want to install the source code. - -</UL> - -<P>During the installation, Apache will configure the files in the - <SAMP>conf</SAMP> directory for your chosen installation - directory. However if any of the files in this directory already exist - they will <STRONG>not</STRONG> be overwritten. Instead the new copy of - the corresponding file will be left with the extension - <SAMP>.default</SAMP>. So, for example, if - <SAMP>conf\httpd.conf</SAMP> already exists it will not be altered, - but the version which would have been installed will be left in - <SAMP>conf\httpd.conf.default</SAMP>. After the installation has - finished you should manually check to see what in new in the - <SAMP>.default</SAMP> file, and if necessary update your existing - configuration files.</P> - -<P>Also, if you already have a file called <SAMP>htdocs\index.html</SAMP> - then it will not be overwritten (no <SAMP>index.html.default</SAMP> - file will be installed either). This should mean it a safe to install - Apache over an existing installation (but you will have to stop the - existing server running before doing the installation, then start the - new one after the installation is finished).</P> - -<P>After installing Apache, you should edit the configuration files in - the <SAMP>conf</SAMP> directory as required. These files will be - configured during the install ready for Apache to be run from the - directory where it was installed, with the documents served from the - subdirectory <SAMP>htdocs</SAMP>. There are lots of other options - which should be set before you start really using Apache. However to - get started quickly the files should work as installed.</P> - -<H2><A NAME="run">Running Apache for Windows</A></H2> - -There are two ways you can run Apache: - -<UL> - <LI>As a <A HREF="#service">"service"</A> (available on Windows NT/2000 only). - This is the best option if you want Apache to automatically start when you - machine boots, and to keep Apache running when you log-off. - <LI>From a <A HREF="#cmdline">console window</A>. This is the only option - available for Windows 95/98 users, and MUST be used by Windows NT/2000 - users before to attempting to run as a service. -</UL> - -<P>To run Apache from a console window, select the "Start Apache as - console app" option from the Start menu (in Apache 1.3.4 and earlier, - this option was called "Apache Server"). This will open a console - window and start Apache running inside it. The window will remain - active until you stop Apache. To stop Apache running, either select - the "Shutdown Apache console app" icon option from the Start menu - (this is not available in Apache 1.3.4 or earlier), or see <A - HREF="#signal">Signalling Console Apache when Running</A> for how - to control Apache from the command line.</P> - -<P>If the Apache console window closes immediately (or unexpectedly), - run the "Command Prompt" from the Start Menu - Programs list. Change - to the folder to which you installed Apache, type the command apache, - and read the error message. Then change to the logs folder, and review - the error.log file for configuration mistakes. If you accepted the - defaults when you installed Apache, the commands would be:</P> - -<PRE> - c: - cd "\program files\apache group\apache" - apache - <SAMP>Wait for Apache to exit, or press Ctrl+C</SAMP> - cd logs - more <error.log -</PRE> - -<P><STRONG>Complete the steps above before you proceed to attempt to - start Apache as a Window NT/2000 service!</STRONG></P> - -<P>To start Apache as a service, you first need to install it as a - service. Multiple Apache services can be installed, each with a - different name and configuration. To install the default Apache - service named "Apache", run the "Install Apache as Service (NT only)" - option from the Start menu. Once this is done you can start the "Apache" - service by opening the Services window (in the Control Panel), selecting Apache, - then clicking on Start. Apache will now be running in the background. You - can later stop Apache by clicking on Stop. As an alternative to using - the Services window, you can start and stop the "Apache" service from the control - line with:</P> - -<PRE> - NET START APACHE - NET STOP APACHE -</PRE> - -<P>See <A HREF="#signalsrv">Signalling Service Apache when Running</A> - for more information on installing and controlling Apache services.</P> - -<P><STRONG>Apache, unlike many other Windows NT/2000 services, logs any - errors to it's own error.log file in the logs folder within the - Apache server root folder. You will <EM>not</EM> find Apache error - details in the Windows NT Event Log.</STRONG></P> - -<P>After starting Apache running (either in a console window or as a - service) if 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 this URL:</P> - -<PRE> - http://localhost/ -</PRE> - -<P>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. - If your host isn't connected to the net, you may have to use - this URL:</P> - -<PRE> - http://127.0.0.1/ -</PRE> - -<P>Once your basic installation is working, you should configure it - properly by editing the files in the <SAMP>conf</SAMP> directory. - Again, if you change the configuration of the Windows NT/2000 - service for Apache, first attempt to start it from the command - line to assure that the service starts with no errors.</P> - -<P>Because Apache <em>CANNOT</em> share the same port with another - TCPIP application, you may need to stop or uninstall certain - services first. These include (but are not limited to) other - web servers, and firewall products such as BlackIce. If you can - only start Apache with these services disabled, reconfigure either - Apache or the other product so that they do not listen on the - same TCPIP ports.</P> - -<H2><A NAME="use">Configuring Apache for Windows</A></H2> - -<P>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 - Windows. See the <A HREF="../">Apache documentation</A> for all the - available directives.</P> - -<P>The main differences in Apache for Windows are:</P> - -<UL> - <LI><P>Because Apache for Windows is multithreaded, it does not use a - separate process for each request, as Apache does with - Unix. Instead there are usually only two Apache processes running: - a parent process, 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. - <STRONG> - Warning: The server configuration file is reread when the - new child process is started. If you have modified httpd.conf, - the new child may not start or you may receive unexpected results. - </STRONG> - <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> - <LI><P>The directives that accept filenames as arguments now must use - Windows filenames instead of Unix ones. However, because Apache - uses Unix-style names internally, you must use forward slashes, not - backslashes. Drive letters can be used; if omitted, the drive with - the Apache executable will be assumed.</P> - <LI><P>Apache for Windows 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/ApacheModuleStatus.dll -</PRE> - <P>Information on <A HREF="../mod/mod_so.html#creating">creating loadable - modules</A> is also available.</P> - <LI><P>Apache can also load ISAPI Extensions (<EM>i.e.</EM>, Internet Server - Applications), such as those used by Microsoft's IIS, and other - Windows servers. <A HREF="../mod/mod_isapi.html">More information - is available.</A> Note that Apache <em>CANNOT</em> load ISAPI - Filters. -</UL> - -<H2><A NAME="service">Running Apache for Windows as a Service</A></H2> - -<P><STRONG>Note: The -n option to specify a service name is only available - with Apache 1.3.7 and later. Earlier versions of Apache only support - the default service name 'Apache'.</STRONG></P> - -<P>You can install Apache as a Windows NT service as follows:</p> - -<PRE> - apache -k install -n "service name" -</PRE> - - <p>To install a service to use a particular configuration, specify the - configuration file when the service is installed:</p> - -<PRE> - apache -k install -n "service name" -f "\my server\conf\my.conf" -</PRE> - - <p>To remove an Apache service, use</p> - -<PRE> - apache -k uninstall -n "service name" -</PRE> - - <p>The default "service name", if one is not specified, is "Apache".</P> - -<P>Once a service is installed, you can use the <SAMP>-n</SAMP> option, in - conjunction with other options, to refer to a service's configuration - file. For example:</P> - -<P>To test a service's configuration file:</P> - -<PRE> - apache -n "service name" -t -</PRE> - -<P>To start a console Apache using a service's configuration file:</P> - -<PRE> - apache -n "service name" -</PRE> - -<P><STRONG>Important Note on service dependencies:</STRONG></P> - -<P>Prior to Apache release 1.3.13, the dependencies required to - successfully start an installed service were not configured. - After installing a service using earlier versions of Apache, - you must follow these steps: - -<PRE> - Run regedt32 - Select <U>W</U>indow - "HKEY_LOCAL_MACHINE on Local Machine" from the menu - Double-click to open the SYSTEM, then the CurrentControlSet keys - Scroll down and click on the Apache servicename - Select <U>E</U>dit - Add <U>V</U>alue... from the menu - Fill in the Add Value dialog with - <U>V</U>alue Name: DependOnGroup - <U>D</U>ata Type: REG_MULTI_SZ - and click OK - Leave the Multi-String Editor dialog empty and click OK - Select <U>E</U>dit - Add <U>V</U>alue... from the menu - Fill in the Add Value dialog with - <U>V</U>alue Name: DependOnService - <U>D</U>ata Type: REG_MULTI_SZ - and click OK - Type the following list (one per line) in the Multi-String Editor dialog - Tcpip - Afd - and click OK -</PRE> - -<P>If you are using COM or DCOM components from a third party module, ISAPI, - or other add-in scripting technologies such as ActiveState Perl, you may - also need to add the entry Rpcss to the DependOnService list. To avoid - exposing the TCP port 135 when it is unnecessary, Apache does not create - that entry upon installation. Follow the directions above to find or - create the DependOnService value, double click that value if it already - exists, and add the Rpcss entry to the list.</P> - -<H2><A NAME="cmdline">Running Apache for Windows from the Command Line</A></H2> - -<P>The Start menu icons and the NT Service manager can provide a simple - interface for administering Apache. But in some cases it is easier to - work from the command line.</P> - -<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:</p> - -<UL> - <LI>-f specifies a path to a particular configuration file -</UL> - -<PRE> apache -f "c:\my server\conf\my.conf" - apache -f test\test.conf</PRE> - -<UL> - <LI>-n specifies the configuration file of an installed Apache service (Apache 1.3.7 and later) -</UL> - -<PRE> apache -n "service name"</PRE> - - <p>In these cases, the proper ServerRoot should be set in the configuration file.</P> - -<P>If you don't specify a configuration file name with -f or -n, 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:</P> - -<UL> - <LI>A ServerRoot directive via a -C switch. - <LI>The -d switch on the command line. - <LI>Current working directory - <LI>A registry entry, created if you did a binary install. - <LI>The server root compiled into the server. -</UL> - -<P>The server root compiled into the server is usually "/apache". - invoking apache with the -V switch will display this value - labeled as HTTPD_ROOT.</P> - -<P>When invoked from the start menu, Apache is usually passed no arguments, - so using the registry entry is the preferred technique for console Apache.</P> - -<P>During a binary installation, a version-specific registry key is created - in the Windows registry: - -<PRE> - HKEY_LOCAL_MACHINE\Software\Apache Group\Apache\1.3.7 - - HKEY_LOCAL_MACHINE\Software\Apache Group\Apache\2.0a3 -</PRE> - -<P>This key is compiled into the server and can enable you to test - new versions without affecting the current version. Of course - you must take care not to install the new version on top of the - old version in the file system.</P> - -<P>If you did not do a binary install then Apache will in some - scenarios complain that about the missing registry key. This - warning can be ignored if it otherwise was able to find its - configuration files.</P> - -<P>The value of this key is the "ServerRoot" directory, containing the - <SAMP>conf</SAMP> directory. When Apache starts it will read the - <SAMP>httpd.conf</SAMP> file from this directory. If this file - contains a <SAMP>ServerRoot</SAMP> directive which is different from - the directory obtained from the registry key above, Apache will forget - the registry key and use the directory from the configuration file. - If you copy the Apache directory or configuration files to a new - location it is vital that you update the <SAMP>ServerRoot</SAMP> - directory in the <SAMP>httpd.conf</SAMP> file to the new location. - -<P>To run Apache from the command line as a console application, use the - following command:</p> - -<PRE> - apache -</PRE> - - <p>Apache will execute, and will remain running until it is stopped by pressing - control-C.</P> - -<H2><A NAME="signalsrv">Signalling Service Apache when running</A></H2> - -<P>On Windows NT, multiple instances of Apache can be run as services. - Signal an Apache service to start, restart, or shutdown as follows:</P> - -<PRE> - apache -n "service name" -k start - apache -n "service name" -k restart - apache -n "service name" -k shutdown -</PRE> - -<P>In addition, you can use the native NT NET command to - start and stop Apache services as follows:</P> - -<PRE> - NET START "service name" - NET STOP "service name" -</PRE> - -<H2><A NAME="signal">Signalling Console Apache when running</A></H2> - -<P>On Windows 95, Apache runs as a console application. You can tell a - running Apache to stop by opening another console window and typing:</P> - -<PRE> - apache -k shutdown -</PRE> - -<P>This should be used instead of pressing Control-C in the running - Apache console window, because it lets Apache end any current - transactions and cleanup gracefully.</P> - -<P>You can also tell Apache to restart. This makes it re-read the - configuration files. Any transactions in progress are allowed to - complete without interruption. To restart Apache, run</P> - -<PRE> - apache -k restart -</PRE> - -<P>Note for people familiar with the Unix version of Apache: these - commands provide a Windows equivalent to <CODE>kill -TERM - <EM>pid</EM></CODE> and <CODE>kill -USR1 <EM>pid</EM></CODE>. The command - line option used, <CODE>-k</CODE>, was chosen as a reminder of the - "kill" command used on Unix.</P> - -<!--#include virtual="footer.html" --> -</BODY> -</HTML> - |