diff options
Diffstat (limited to 'docs/manual/platform')
-rw-r--r-- | docs/manual/platform/perf-bsd44.html | 254 | ||||
-rw-r--r-- | docs/manual/platform/perf-dec.html | 285 | ||||
-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 | 205 | ||||
-rw-r--r-- | docs/manual/platform/unixware.html | 62 | ||||
-rw-r--r-- | docs/manual/platform/windows.html | 559 |
7 files changed, 0 insertions, 1662 deletions
diff --git a/docs/manual/platform/perf-bsd44.html b/docs/manual/platform/perf-bsd44.html deleted file mode 100644 index c5e978c2b9..0000000000 --- a/docs/manual/platform/perf-bsd44.html +++ /dev/null @@ -1,254 +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> -<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 2b9cc9cc5e..0000000000 --- a/docs/manual/platform/perf-dec.html +++ /dev/null @@ -1,285 +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 ->runing 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 - -<HR> - ----------------------------------------------------------------------------- - -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 numer 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 a9267dfb38..0000000000 --- a/docs/manual/platform/readme-tpf.html +++ /dev/null @@ -1,205 +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> -<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 PUT08 and APAR PJ25589 are 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 with only a couple of operating system specific changes - to httpd.conf:<BR> - <UL> - <LI>ServerType needs to be "inetd" on pre-PUT09 systems. - <LI>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. - </UL> -</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_cpystrn.c - <LI>ap_fnmatch.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>http_config.c - <LI>http_core.c - <LI>http_log.c - <LI>http_main.c <A HREF="#note_1"> <i><small>(see note 1)</small></i></A> - <LI>http_protocol.c - <LI>http_request.c - <LI>http_vhost.c <i><small>(requires PUT9)</small></i> - <LI>logresolve.c <i><small>(requires PUT10)</small></i> - <LI>mod_access.c <A HREF="#note_2"> <i><small>(see note 2)</small></i></A> - <LI>mod_actions.c - <LI>mod_alias.c - <LI>mod_asis.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_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="#note_3"> <i><small>(see note 3)</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> - <LI>mod_setenvif.c - <LI>mod_speling.c - <LI>mod_status.c - <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>regular expression parser - <LI>rotatelogs.c <i><small>(requires PUT10)</small></i> - <LI>util.c - <LI>util_date.c - <LI>util_script.c - <LI>util_uri.c - </UL></MULTICOL> - <br><b>Notes:</b> - <A NAME="note_1"> </A> - <ol> - <li>"Standalone" mode requires TPF version 4.1 PUT09 - <A NAME="note_2"> </A> - <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 - <A NAME="note_3"> </A> - <li>CGI execution requires TPF version 4.1 PUT10 - </ol> - -<H3>Components/modules not yet supported on TPF:</H3> - - <multicol COLS=3><UL> - <LI>ap_md5c.c - <LI>htpasswd.c - <LI>mod_auth.c - <LI>mod_digest.c - <LI>mod_mmap_static.c - <LI>mod_proxy.c - <LI>mod_rewrite.c - <LI>proxy_cache.c - <LI>proxy_connect.c - <LI>proxy_ftp.c - <LI>proxy_http.c - <LI>proxy_util.c - <LI>rfc1413.c - <LI>util_md5.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>mod_auth_db.c - <LI>mod_auth_dbm.c - <LI>mod_auth_db.module - <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 in buff.c to prevent blocking. - </UL> - <BR> - </UL> - - <H3>Find that function...</H3> - <P>Some simple functions & definitions 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 a77a3b5cd4..0000000000 --- a/docs/manual/platform/unixware.html +++ /dev/null @@ -1,62 +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" --> - -<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/windows.html b/docs/manual/platform/windows.html deleted file mode 100644 index 018932e054..0000000000 --- a/docs/manual/platform/windows.html +++ /dev/null @@ -1,559 +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 1.3 under Microsoft Windows. Please note that at - this time, Windows 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 NT has not yet been optimized for performance. -Apache still performs best, and is most reliable on Unix platforms. Over -time we will improve NT performance. Folks doing comparative reviews -of webserver performance are asked to compare against Apache -on a Unix platform such as Solaris, FreeBSD, or Linux.</STRONG></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 the section on -<A HREF="#comp">Compiling Apache for Windows</A> below. - -<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="#comp">Compiling Apache for Windows</A> -</UL> - -<HR> - -<H2><A NAME="req">Requirements</A></H2> - -Apache 1.3 is designed to run on Windows NT 4.0. The binary installer -will only work in Intel processors. Apache may also run on Windows 95, -Windows 98 and Windows NT 3.5.1, but these have not been tested. In -all cases TCP/IP networking must be installed. - -<P> - -If running on Windows 95, using the "Winsock2" upgrade is recommended -but may not be necessary. If running on NT 4.0, installing Service Pack 2 -is recommended. - -<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/">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> - -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). - -<H2><A NAME="inst">Installing Apache for Windows</A></H2> - -Run the Apache <SAMP>.exe</SAMP> file you downloaded above. This will -ask for: - -<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> - -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> - -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. - -<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 NT 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 users. -</UL> - -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 - -<PRE> - NET START APACHE - NET STOP APACHE -</PRE> - -See <A HREF="#signalsrv">Signalling Service Apache when Running</A> -for more information on installing and controlling Apache services. - -<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> - -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: - -<PRE> - http://localhost/ -</PRE> - -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: - -<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. - -<H2><A NAME="use">Configuring Apache for Windows</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 -Windows. See the <A HREF="./">Apache documentation</A> for all the -available directives. - -<P> - -The main differences in Apache for Windows are: - -<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/core.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/core.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> -</UL> - -<H2><A NAME="service">Running Apache for Windows as a Service</A></H2> - -You can install Apache as a Windows NT service as follows: - -<PRE> - apache -i -n "service name" -</PRE> - -To install a service to use a particular configuration, specify the -configuration file when the service is installed: - -<PRE> - apache -i -n "service name" -f "\my server\conf\my.conf" -</PRE> - -To remove an Apache service, use - -<PRE> - apache -u -n "service name" -</PRE> - -The default "service name", if one is not specified, is "Apache". - -<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:<br> - -To test a service's configuration file: -<PRE> - apache -n "service name" -t -</PRE> - -To start a console Apache using a service's configuration file: -<PRE> - apache -n "service name" -</PRE> - -<H2><A NAME="cmdline">Running Apache for Windows from the Command Line</A></H2> - -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> -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 "c:\my server\conf\my.conf"</PRE> -<PRE> apache -f test\test.conf</PRE> -<UL> -<LI>-n specifies the configuration file of an installed Apache service -</UL> -<PRE> apache -n "service name"</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 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 it's 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>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> -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> -During a binary installation, a registry key will have -been installed, for example: -<PRE> - HKEY_LOCAL_MACHINE\Software\Apache Group\Apache\1.3.4\ServerRoot -</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> -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 it's -configuration files. - -<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: - -<PRE> - apache -</PRE> - -Apache will execute, and will remain running until it is stopped by pressing -control-C. - -<H2><A NAME="signalsrv">Signalling Service Apache when running</A></H2> - -On Windows NT, multiple instances of Apache can be run as services. -Signal an Apache service to start, restart, or shutdown as follows: - -<PRE> - apache -n "service name" -k start - apache -n "service name" -k restart - apache -n "service name" -k shutdown -</PRE> - -In addition, you can use the native NT NET command to -start and stop Apache services as follows: - -<PRE> - NET START "service name" - NET STOP "service name" -</PRE> - -<H2><A NAME="signal">Signalling Console Apache when running</A></H2> - -On Windows 95, Apache runs as a console application. You can tell a -running Apache to stop by opening another console window and running - -<PRE> - apache -k shutdown -</PRE> -<BLOCKQUOTE> - <STRONG>Note: This option is only available with Apache 1.3.3 and - later. For earlier versions, you need to use Control-C in the - Apache console window to shut down the server.</STRONG> -</BLOCKQUOTE> - -<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> - -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 - -<PRE> - apache -k restart -</PRE> -<BLOCKQUOTE> - <STRONG>Note: This option is only available with Apache 1.3.3 and - later. For earlier versions, you need to use Control-C in the - Apache console window to shut down the server.</STRONG> -</BLOCKQUOTE> - -<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. - -<H2><A NAME="comp">Compiling Apache for Windows</A></H2> - -<P>Compiling Apache requires Microsoft Visual C++ 5.0 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.</P> - -<P>First, unpack the Apache distribution into an appropriate - directory. Open a command-line prompt, and change to the - <CODE>src</CODE> subdirectory of the Apache distribution.</P> - -<P>The master Apache makefile instructions are contained in the - <CODE>Makefile.nt</CODE> file. To compile Apache on Windows NT, simply - use one of the following commands: -<UL> -<LI><CODE>nmake /f Makefile.nt _apacher</CODE> (release build) -<LI><CODE>nmake /f Makefile.nt _apached</CODE> (debug build) -</UL> - -<P><em>(1.3.4 and later)</em> To compile Apache on Windows 95, use one of -<UL> -<LI><CODE>nmake /f Makefile_win32.txt</CODE> (release build) -<LI><CODE>nmake /f Makefile_win32_debug.txt</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 Visual Studio development - environment. Although compiling Apache in this manner is not as - simple, it makes it possible to easily modify the Apache source, or - to compile Apache if the command-line tools are not installed. - Project files (<CODE>.DSP</CODE>) are included for each of the - portions of Apache. To build Apache from the these projects files - you will need to build the following projects <EM>in this order</EM>: - - <OL> - <LI><CODE>os\win32\ApacheOS.dsp</CODE> - <LI><CODE>regex\regex.dsp</CODE> - <LI><CODE>ap\ap.dsp</CODE> - <LI><CODE>main\gen_uri_delims.dsp</CODE> - <LI><CODE>main\gen_test_char.dsp</CODE> - <LI><CODE>ApacheCore.dsp</CODE> - <LI><CODE>Apache.dsp</CODE> - </OL> - - In addition, the <CODE>src\os\win32</CODE> subdirectory contains - project files for the optional modules (see below).</P> - -<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 install the files into the <CODE>\Apache</CODE> directory - automatically, use one the following nmake commands (see above):</P> -<UL> -<LI><CODE>nmake /f Makefile.nt installr INSTDIR=<EM>dir</EM></CODE> - (for release build) -<LI><CODE>nmake /f Makefile.nt installd INSTDIR=<EM>dir</EM></CODE> - (for debug build) -</UL> -or, for Windows 95 (1.3.4 and later), use one of: -<UL> -<LI><CODE>nmake /f Makefile_win32.txt install INSTDIR=<EM>dir</EM></CODE> - (for release build) -<LI><CODE>nmake /f Makefile_win32_debug.txt install INSTDIR=<EM>dir</EM></CODE> - (for debug build) -</UL> - -The dir argument to INSTDIR gives the installation directory; it can -be omitted if Apache is to be installed into <SAMP>\Apache</SAMP>. - -<P>This will install the following:</P> - -<UL> - <LI><CODE><EM>dir</EM>\Apache.exe</CODE> - Apache executable - <LI><CODE><EM>dir</EM>\ApacheCore.dll</CODE> - Main Apache shared library - <LI><CODE><EM>dir</EM>\modules\ApacheModule*.dll</CODE> - Optional Apache - modules (7 files) - <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.</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. - -<!--#include virtual="footer.html" --> -</BODY> -</HTML> - |