]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Bring the 1.2 FAQ (which is what appears on the Apache site)
authorKen Coar <coar@apache.org>
Wed, 9 Jul 1997 10:15:42 +0000 (10:15 +0000)
committerKen Coar <coar@apache.org>
Wed, 9 Jul 1997 10:15:42 +0000 (10:15 +0000)
up-to-date with the latest changes.  This one file, at least,
needs to be kept in sync since it doesn't contain any 1.3-isms.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3@78576 13f79535-47bb-0310-9956-ffa450edef68

APACHE_1_2_X/htdocs/manual/misc/FAQ.html

index ef0c292be0da59f38eddb84a440f5df8dd5ad612..5181781dd965f5f01a21fceae4acf2bb48229d62 100644 (file)
@@ -15,7 +15,7 @@
   <!--#include virtual="header.html" -->
   <H1 ALIGN="CENTER">Apache Server Frequently Asked Questions</H1>
   <P>
-  $Revision: 1.63.2.8 $ ($Date: 1997/07/05 17:30:58 $)
+  $Revision: 1.63.2.9 $ ($Date: 1997/07/09 10:15:42 $)
   </P>
   <P>
   The latest version of this FAQ is always available from the main
@@ -85,7 +85,7 @@
    <LI><A HREF="#why">Why was Apache created?</A>
    </LI>
    <LI><A HREF="#relate">How does The Apache Group's work relate to
-    other servers?</A> 
+    other servers?</A>
    </LI>
    <LI><A HREF="#name">Why the name &quot;Apache&quot;?</A>
    </LI>
    </LI>
    <LI><A HREF="#premature-script-headers">What does it mean when my
         CGIs fail with &quot;<SAMP>Premature end of script
-        headers</SAMP>&quot;?</A> 
+        headers</SAMP>&quot;?</A>
    </LI>
    <LI><A HREF="#ssi-part-i">How do I enable SSI (parsed HTML)?</A>
    </LI>
    </LI>
    <LI><A HREF="#cookies1">Why does Apache send a cookie on every response?</A>
    </LI>
-   <LI><A HREF="#cookies2">Why don't my cookies work, I even compiled in 
+   <LI><A HREF="#cookies2">Why don't my cookies work, I even compiled in
     <SAMP>mod_cookies</SAMP>?</A>
    </LI>
    <LI><A HREF="#jdk1-and-http1.1">Why do my Java app[let]s give me plain text
    <LI><A HREF="#addlog">How do I add browsers and referrers to my
     logs?</A>
    </LI>
-   <LI><A HREF="#bind8.1">Why do I get an error about an undefined 
+   <LI><A HREF="#bind8.1">Why do I get an error about an undefined
     reference to &quot;<SAMP>__inet_ntoa</SAMP>&quot; or other
     <SAMP>__inet_*</SAMP> symbols?</A>
    </LI>
 <HR>
 
   <H2>The Answers</H2>
-  <P>
-  </P>
   <H3>
    Background
   </H3>
   <P>
   To address the concerns of a group of WWW providers and part-time httpd
   programmers that httpd didn't behave as they wanted it to behave.
-  Apache is an entirely volunteer effort, completely funded by its 
+  Apache is an entirely volunteer effort, completely funded by its
   members, not by commercial sales.
   </P>
   <HR>
   For an independent assessment, see
   <A
    HREF="http://webcompare.iworld.com/compare/chart.html"
-  >Web Compare</A>'s 
+  >Web Compare</A>'s
   comparison chart.
   </P>
   <P>
     <P>
     Apache tries to be helpful when it encounters a problem.  In many
     cases, it will provide some details by writing one or messages to
-    the server error log.  Sometimes this is enough for you to diagnose 
+    the server error log.  Sometimes this is enough for you to diagnose
     &amp; fix the problem yourself (such as file permissions or the like).
-    The default location of the error log is 
-    <SAMP>/usr/local/etc/httpd/logs/error_log</SAMP>, but see the 
+    The default location of the error log is
+    <SAMP>/usr/local/etc/httpd/logs/error_log</SAMP>, but see the
     <A
      HREF="../mod/core.html#errorlog"
     ><SAMP>ErrorLog</SAMP></A>
   NCSA httpd 1.4 and NCSA httpd 1.5.
   </P>
   <P>
-  NCSA httpd appears to be moving toward adding experimental features 
+  NCSA httpd appears to be moving toward adding experimental features
   which are not generally required at the moment. Some of the experiments
   will succeed while others will inevitably be dropped. The Apache
   philosophy is to add what's needed as and when it is needed.
  <LI><A NAME="premature-script-headers">
       <STRONG>What does it mean when my CGIs fail with
       &quot;<SAMP>Premature end of script headers</SAMP>&quot;?</STRONG>
-     </A> 
+     </A>
   <P>
   It means just what it says: the server was expecting a complete set of
   HTTP headers (one or more followed by a blank line), and didn't get
   <P>
   The second most common cause of this (aside from people not
   outputting the required headers at all) is a result of an interaction
-  with Perl's output buffering.  To make Perl flush its buffers 
+  with Perl's output buffering.  To make Perl flush its buffers
   after each output statement, insert the following statements around
   the <CODE>print</CODE> or <CODE>write</CODE> statements that send your
   HTTP headers:
   </DL>
   </P>
   <P>
-  This is generally only necessary when you are calling external 
+  This is generally only necessary when you are calling external
   programs from your script that send output to stdout, or if there will
   be a long delay between the time the headers are sent and the actual
   content starts being emitted.  To maximise performance, you should
   </P>
   <P>
   If your script isn't written in Perl, do the equivalent thing for
-  whatever language you <EM>are</EM> using (<EM>e.g.</EM>, for C, call 
+  whatever language you <EM>are</EM> using (<EM>e.g.</EM>, for C, call
   <CODE>fflush()</CODE> after writing the headers).
   </P>
   <HR>
   SSI (an acronym for Server-Side Include) directives allow static HTML
   documents to be enhanced at run-time (<EM>e.g.</EM>, when delivered to
   a client by Apache).  The format of SSI directives is covered
-  in the <A HREF="../mod/mod_include.html">mod_include manual</A>; 
+  in the <A HREF="../mod/mod_include.html">mod_include manual</A>;
   suffice it to say that Apache supports not only SSI but
   xSSI (eXtended SSI) directives.
   </P>
    HREF="../mod/mod_proxy.html"
   >proxy module</A>.
   If compiled
-  in, this will make Apache act as a caching-proxy server.  
+  in, this will make Apache act as a caching-proxy server.
   </P>
   <HR>
  </LI>
   <P>
   &quot;Multiviews&quot; is the general name given to the Apache
   server's ability to provide language-specific document variants in
-  response to a request.  This is documented quite thoroughly in the 
+  response to a request.  This is documented quite thoroughly in the
   <A
    HREF="../content-negotiation.html"
    REL="Help"
       virtual hosts?</STRONG>
      </A>
   <P>
-  You are probably running into resource limitations in your 
-  operating system.  The most common limitation is the 
-  <EM>per</EM>-process limit on <STRONG>file descriptors</STRONG>, 
-  which is almost always the cause of problems seen when adding 
-  virtual hosts.  Apache often does not give an intuitive error 
-  message because it is normally some library routine (such as 
-  <CODE>gethostbyname()</CODE>) which needs file descriptors and 
-  doesn't complain intelligibly when it can't get them.  
+  You are probably running into resource limitations in your
+  operating system.  The most common limitation is the
+  <EM>per</EM>-process limit on <STRONG>file descriptors</STRONG>,
+  which is almost always the cause of problems seen when adding
+  virtual hosts.  Apache often does not give an intuitive error
+  message because it is normally some library routine (such as
+  <CODE>gethostbyname()</CODE>) which needs file descriptors and
+  doesn't complain intelligibly when it can't get them.
   </P>
   <P>
   Each log file requires a file descriptor, which means that if you are
   using separate access and error logs for each virtual host, each
-  virtual host needs two file descriptors.  Each 
+  virtual host needs two file descriptors.  Each
   <A
    HREF="../mod/core.html#listen"
   ><SAMP>Listen</SAMP></A>
-  directive also needs a file descriptor.  
+  directive also needs a file descriptor.
   </P>
   <P>
   Typical values for &lt;<EM>n</EM>&gt; that we've seen are in
        <A
         HREF="../mod/core.html#listen"
        ><SAMP>Listen</SAMP></A>
-       directives.  If there are no other servers running on the machine 
+       directives.  If there are no other servers running on the machine
        on the same port then you normally don't
        need any Listen directives at all.  By default Apache listens to
        all addresses on port 80.
    </LI>
-   <LI>Reduce the number of log files.  You can use 
+   <LI>Reduce the number of log files.  You can use
        <A
         HREF="../mod/mod_log_config.html"
        ><SAMP>mod_log_config</SAMP></A>
        to log all requests to a single log file while including the name
-       of the virtual host in the log file.  You can then write a 
+       of the virtual host in the log file.  You can then write a
        script to split the logfile into separate files later if
        necessary.
    </LI>
      </A>
   <P>
   On FreeBSD 2.2 and older <SAMP>FD_SETSIZE</SAMP>, which limits the
-  number of open 
+  number of open
   files on the system, is limited to 256. This can restrict the number of
   virtual hosts you can use; especially if they all use different log
   files. Increasing this limit (and recompiling Apache) is not enough,
   <P>
   You need to use it with a URL in the form
   &quot;<SAMP>/foo/bar</SAMP>&quot; and not one with a method and
-  hostname such as &quot;<SAMP>http://host/foo/bar</SAMP>&quot;.  See the 
+  hostname such as &quot;<SAMP>http://host/foo/bar</SAMP>&quot;.  See the
   <A
    HREF="../mod/core.html#errordocument"
   ><SAMP>ErrorDocument</SAMP></A>
      </A>
   <P>
   Apache does <EM>not</EM> send automatically send a cookie on every
-  response, unless you have re-compiled it with the 
+  response, unless you have re-compiled it with the
   <A
    HREF="../mod/mod_cookies.html"
   ><SAMP>mod_cookies</SAMP></A>
   This module may help track users, and uses cookies to do this. If
   you are not using the data generated by <SAMP>mod_cookies</SAMP>, do
   not compile it into Apache. Note that in 1.2 this module was renamed
-  to the more correct name 
+  to the more correct name
   <A
    HREF="../mod/mod_usertrack.html"
   ><SAMP>mod_usertrack</SAMP></A>,
-  and cookies 
+  and cookies
   have to be specifically enabled with the
   <A
     HREF="../mod/mod_usertrack.html#cookietracking"
   </P>
   <P>
   <DL>
-   <DD><CODE>BrowserMatch Java1.0 force-response-1.0</CODE>
+   <DD><CODE>BrowserMatch Java1.0 force-response-1.0
+    <BR>
+    BrowserMatch JDK/1.0 force-response-1.0</CODE>
    </DD>
   </DL>
   </P>
  <LI><A NAME="nodelay">
       <STRONG>Why am I getting &quot;<SAMP>httpd: could not set socket
       option TCP_NODELAY</SAMP>&quot; in my error log?</STRONG>
-     </A> 
+     </A>
   <P>
   This message almost always indicates that the client disconnected
   before Apache reached the point of calling <CODE>setsockopt()</CODE>
  <LI><A NAME="peerreset">
       <STRONG>Why am I getting &quot;<SAMP>connection reset by
       peer</SAMP>&quot; in my error log?</STRONG>
-     </A> 
+     </A>
   <P>
   This is a normal message and nothing about which to be alarmed.  It simply
   means that the client cancelled the connection before it had been
   <P>
   <UL>
    <LI>Remove the definition of <CODE>struct iovec</CODE> from your C
-    library includes.  It is located in <CODE>/usr/include/sys/uio.h</CODE>.  
+    library includes.  It is located in <CODE>/usr/include/sys/uio.h</CODE>.
     <STRONG>Or,</STRONG>
    </LI>
    <LI>Add  <CODE>-DNO_WRITEV</CODE> to the <CODE>EXTRA_CFLAGS</CODE>
   In Apache version 1.2, the error log message
   about dumped core includes the directory where the dump file should be
   located.  However, many Unixes do not allow a process that has
-  called <CODE>setuid()</CODE> to dump core for security reasons; 
-  the typical Apache setup has the server started as root to bind to 
-  port 80, after which it changes UIDs to a non-privileged user to 
+  called <CODE>setuid()</CODE> to dump core for security reasons;
+  the typical Apache setup has the server started as root to bind to
+  port 80, after which it changes UIDs to a non-privileged user to
   serve requests.
   </P>
   <P>
   encryption technology.  If Apache included SSL in the base package,
   its distribution would involve all sorts of legal and bureaucratic
   issues, and it would no longer be freely available.  Also, some of
-  the technology required to talk to current clients using SSL is 
-  patented by <A HREF="http://www.rsa.com/">RSA Data Security</A>, 
+  the technology required to talk to current clients using SSL is
+  patented by <A HREF="http://www.rsa.com/">RSA Data Security</A>,
   who restricts its use without a license.
   </P>
   <P>
   <HR>
  </LI>
  <LI><A NAME="HPUX-core">
-       <STRONG>Why do I get core dumps under HPUX using HP's ANSI 
+       <STRONG>Why do I get core dumps under HPUX using HP's ANSI
                C compiler?</STRONG>
       </A>
   <P>
     the operating system.
    </LI>
    <LI><STRONG>Your operating system or compiler may be out of
-    revision.</STRONG> 
+    revision.</STRONG>
     <BR>
     Software vendors (including those that develop operating systems)
     issue new releases for a reason; sometimes to add functionality, but
   <HR>
  </LI>
  <LI><A NAME="bind8.1">
-      <STRONG>Why do I get an error about an undefined reference to 
+      <STRONG>Why do I get an error about an undefined reference to
       &quot;<SAMP>__inet_ntoa</SAMP>&quot; or other
       <SAMP>__inet_*</SAMP> symbols?</STRONG>
      </A>
   <P>
   If you have installed <A HREF="http://www.isc.org/bind.html">BIND-8</A>
   then this is normally due to a conflict between your include files
-  and your libraries.  BIND-8 installs its include files and libraries 
+  and your libraries.  BIND-8 installs its include files and libraries
   <CODE>/usr/local/include/</CODE> and <CODE>/usr/local/lib/</CODE>, while
   the resolver that comes with your system is probably installed in
   <CODE>/usr/include/</CODE> and <CODE>/usr/lib/</CODE>.  If
   your system uses the header files in <CODE>/usr/local/include/</CODE>
   before those in <CODE>/usr/include/</CODE> but you do not use the new
-  resolver library, then the two versions will conflict.  
+  resolver library, then the two versions will conflict.
   </P>
   <P>
   To resolve this, you can either make sure you use the include files
   and libraries that came with your system or make sure to use the
   new include files and libraries.  Adding <CODE>-lbind</CODE> to the
-  <CODE>EXTRA_LDFLAGS</CODE> line in your <SAMP>Configuration</SAMP> 
+  <CODE>EXTRA_LDFLAGS</CODE> line in your <SAMP>Configuration</SAMP>
   file, then re-running <SAMP>Configure</SAMP>, should resolve the
   problem.  (Apache versions 1.2.* and earlier use
   <CODE>EXTRA_LFLAGS</CODE> instead.)
   <HR>
  </LI>
  <LI><A NAME="set-servername">
-      <STRONG>Why does accessing directories only work when I include 
+      <STRONG>Why does accessing directories only work when I include
       the trailing "/"
       (<EM>e.g.</EM>,&nbsp;<SAMP>http://foo.domain.com/~user/</SAMP>)
-      but not when I omit it 
+      but not when I omit it
       (<EM>e.g.</EM>,&nbsp;<SAMP>http://foo.domain.com/~user</SAMP>)?</STRONG>
      </A>
   <P>
   When you access a directory without a trailing "/", Apache needs
   to send what is called a redirect to the client to tell it to
   add the trailing slash.  If it did not do so, relative URLs would
-  not work properly.  When it sends the redirect, it needs to know 
+  not work properly.  When it sends the redirect, it needs to know
   the name of the server so that it can include it in the redirect.
   There are two ways for Apache to find this out; either it can guess,
   or you can tell it.  If your DNS is configured correctly, it can
   normally guess without any problems.  If it is not, however, then
-  you need to tell it.  
+  you need to tell it.
   </P>
   <P>
-  Add a <A HREF="../mod/core.html#servername">ServerName</A> directive 
+  Add a <A HREF="../mod/core.html#servername">ServerName</A> directive
   to the config file to tell it what the domain name of the server is.
   </P>
   <HR>
  </LI>
  <LI><A NAME="user-authentication">
-      <STRONG>How do I set up Apache to require a username and 
+      <STRONG>How do I set up Apache to require a username and
       password to access certain documents?</STRONG>
      </A>
   <P>
-  There are several ways to do this; some of the more popular 
+  There are several ways to do this; some of the more popular
   ones are to use the <A HREF="../mod/mod_auth.html">mod_auth</A>,
   <A HREF="../mod/mod_auth_db.html">mod_auth_db</A>, or
   <A HREF="../mod/mod_auth_dbm.html">mod_auth_dbm</A> modules.
   <A
    HREF="http://www.apacheweek.com/features/userauth"
   ><CITE>Using User Authentication</CITE></A>
-  or 
+  or
   <A
    HREF="http://www.apacheweek.com/features/dbmauth"
   ><CITE>DBM User Authentication</CITE></A>.
   <HR>
  </LI>
  <LI><A NAME="remote-auth-only">
-      <STRONG>How do I set up Apache to allow access to certain 
+      <STRONG>How do I set up Apache to allow access to certain
       documents only if a site is either a local site <EM>or</EM>
       the user supplies a password and username?</STRONG>
      </A>
   the database, rather than a fast internal device.  The
   <SAMP>libmsql</SAMP>, the mSQL FAQ, and the <SAMP>mod_auth_msql</SAMP>
   documentation warn you about this.  If you have to use different
-  hosts, check out the <SAMP>mod_auth_msql</SAMP> code for 
+  hosts, check out the <SAMP>mod_auth_msql</SAMP> code for
   some compile time flags which might - or might not - suit you.
   </P>
   <HR>