mirror of
				https://github.com/apache/httpd.git
				synced 2025-10-30 08:05:39 +03:00 
			
		
		
		
	or it may give us a better starting point for 2.0 improvements. Fixed a bunch of <p>...</p> matches. Removed 1.3 upgrade recommendation. Fixed some entity encodings. Updated a bunch of links that moved from core.html to mpm_common.html. Fixed a few bad/stale links. Fixed a decrement that was interfering with comment. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88376 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			627 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			627 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!--#if expr="$FAQMASTER" -->
 | |
|  <!--#set var="STANDALONE" value="" -->
 | |
|  <!--#set var="INCLUDED" value="YES" -->
 | |
|  <!--#if expr="$QUERY_STRING = TOC" -->
 | |
|   <!--#set var="TOC" value="YES" -->
 | |
|   <!--#set var="CONTENT" value="" -->
 | |
|  <!--#else -->
 | |
|   <!--#set var="TOC" value="" -->
 | |
|   <!--#set var="CONTENT" value="YES" -->
 | |
|  <!--#endif -->
 | |
| <!--#else -->
 | |
|  <!--#set var="STANDALONE" value="YES" -->
 | |
|  <!--#set var="INCLUDED" value="" -->
 | |
|  <!--#set var="TOC" value="" -->
 | |
|  <!--#set var="CONTENT" value="" -->
 | |
| <!--#endif -->
 | |
| <!--#if expr="$STANDALONE" -->
 | |
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 | |
| <HTML>
 | |
|  <HEAD>
 | |
|   <TITLE>Apache Server Frequently Asked Questions</TITLE>
 | |
|  </HEAD>
 | |
| <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
 | |
|  <BODY
 | |
|   BGCOLOR="#FFFFFF"
 | |
|   TEXT="#000000"
 | |
|   LINK="#0000FF"
 | |
|   VLINK="#000080"
 | |
|   ALINK="#FF0000"
 | |
|  >
 | |
|   <!--#include virtual="header.html" -->
 | |
|   <H1 ALIGN="CENTER">Apache Server Frequently Asked Questions</H1>
 | |
|   <P>
 | |
|   $Revision: 1.7 $ ($Date: 2001/02/28 03:35:59 $)
 | |
|   </P>
 | |
|   <P>
 | |
|   The latest version of this FAQ is always available from the main
 | |
|   Apache web site, at
 | |
|   <<A
 | |
|        HREF="http://www.apache.org/docs/misc/FAQ.html"
 | |
|        REL="Help"
 | |
|       ><SAMP>http://www.apache.org/docs/misc/FAQ.html</SAMP></A>>.
 | |
|   </P>
 | |
| <!-- Notes about changes:                                           -->
 | |
| <!--  - If adding a relative link to another part of the            -->
 | |
| <!--    documentation, *do* include the ".html" portion.  There's a -->
 | |
| <!--    good chance that the user will be reading the documentation -->
 | |
| <!--    on his own system, which may not be configured for          -->
 | |
| <!--    multiviews.                                                 -->
 | |
| <!--  - When adding items, make sure they're put in the right place -->
 | |
| <!--    - verify that the numbering matches up.                     -->
 | |
| <!--  - *Don't* use <PRE></PRE> blocks - they don't appear          -->
 | |
| <!--    correctly in a reliable way when this is converted to text  -->
 | |
| <!--    with Lynx.  Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL>    -->
 | |
| <!--    blocks inside a <P></P> instead.  This is necessary to get  -->
 | |
| <!--    the horizontal and vertical indenting right.                -->
 | |
| <!--  - Don't forget to include an HR tag after the last /P tag     -->
 | |
| <!--    but before the /LI in an item.                              -->
 | |
|   <P>
 | |
|   If you are reading a text-only version of this FAQ, you may find numbers
 | |
|   enclosed in brackets (such as "[12]").  These refer to the list of
 | |
|   reference URLs to be found at the end of the document.  These references
 | |
|   do not appear, and are not needed, for the hypertext version.
 | |
|   </P>
 | |
|   <H2>The Questions</H2>
 | |
| <OL TYPE="A">
 | |
| <!--#endif -->
 | |
| <!--#if expr="$TOC || $STANDALONE" -->
 | |
|  <LI VALUE="5"><STRONG>Configuration Questions</STRONG>
 | |
|   <OL>
 | |
|    <LI><A HREF="#fdlim">Why can't I run more than <<EM>n</EM>>
 | |
|         virtual hosts?</A>
 | |
|    </LI>
 | |
|    <LI><A HREF="#freebsd-setsize">Can I increase <SAMP>FD_SETSIZE</SAMP>
 | |
|         on FreeBSD?</A>
 | |
|    </LI>
 | |
|    <LI><A HREF="#errordoc401">Why doesn't my <CODE>ErrorDocument
 | |
|         401</CODE> work?</A>
 | |
|    </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
 | |
|         <SAMP>mod_cookies</SAMP>?</A>
 | |
|    </LI>
 | |
|    <LI><A HREF="#jdk1-and-http1.1">Why do my Java app[let]s give me plain text
 | |
|         when I request an URL from an Apache server?</A>
 | |
|    </LI>
 | |
|    <LI><A HREF="#midi">How do I get Apache to send a MIDI file so the
 | |
|         browser can play it?</A>
 | |
|    </LI>
 | |
|    <LI><A HREF="#addlog">How do I add browsers and referrers to my logs?</A>
 | |
|    </LI>
 | |
|    <LI><A HREF="#set-servername">Why does accessing directories only work
 | |
|         when I include the trailing "/"
 | |
|         (<EM>e.g.</EM>, <SAMP>http://foo.domain.com/~user/</SAMP>) but
 | |
|         not when I omit it
 | |
|         (<EM>e.g.</EM>, <SAMP>http://foo.domain.com/~user</SAMP>)?</A>
 | |
|    </LI>
 | |
|    <LI><A HREF="#no-info-directives">Why doesn't mod_info list any
 | |
|         directives?</A>
 | |
|    </LI>
 | |
|    <LI><A HREF="#namevhost">I upgraded to Apache 1.3 and now my
 | |
|         virtual hosts don't work!</A>
 | |
|    </LI>
 | |
|    <LI><A HREF="#redhat-htm">I'm using RedHat Linux and my .htm files are
 | |
|         showing up as HTML source rather than being formatted!</A>
 | |
|    </LI>
 | |
|    <LI><A HREF="#htaccess-work">My <CODE>.htaccess</CODE> files are being
 | |
| 	ignored.</A>
 | |
|    </LI>
 | |
|    <LI><A HREF="#forbidden">Why do I get a 
 | |
|         "<SAMP>Forbidden</SAMP>" message whenever I try to 
 | |
|         access a particular directory?</A>
 | |
|    <LI><A HREF="#ie-ignores-mime">Why do my files appear correctly in
 | |
|         Internet Explorer, but show up as source or trigger a save
 | |
|         window with Netscape?</A> 
 | |
|   </OL>
 | |
|  </LI>
 | |
| <!--#endif -->
 | |
| <!--#if expr="$STANDALONE" -->
 | |
| </OL>
 | |
| 
 | |
| <HR>
 | |
| 
 | |
|   <H2>The Answers</H2>
 | |
| <!--#endif -->
 | |
| <!--#if expr="! $TOC" -->
 | |
| 
 | |
|   <H3>E. Configuration Questions</H3>
 | |
| <OL>
 | |
| 
 | |
|  <LI><A NAME="fdlim">
 | |
|       <STRONG>Why can't I run more than <<EM>n</EM>>
 | |
|       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.
 | |
|   </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
 | |
|   <A HREF="../mod/mpm_common.html#listen"><SAMP>Listen</SAMP></A>
 | |
|   directive also needs a file descriptor.
 | |
|   </P>
 | |
|   <P>
 | |
|   Typical values for <<EM>n</EM>> that we've seen are in
 | |
|   the neighborhood of 128 or 250.  When the server bumps into the file
 | |
|   descriptor limit, it may dump core with a SIGSEGV, it might just
 | |
|   hang, or it may limp along and you'll see (possibly meaningful) errors
 | |
|   in the error log.  One common problem that occurs when you run into
 | |
|   a file descriptor limit is that CGI scripts stop being executed
 | |
|   properly.
 | |
|   </P>
 | |
|   <P>
 | |
|   As to what you can do about this:
 | |
|   </P>
 | |
|   <OL>
 | |
|    <LI>Reduce the number of
 | |
|     <A HREF="../mod/mpm_common.html#listen"><SAMP>Listen</SAMP></A>
 | |
|     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
 | |
|     <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
 | |
|     script to split the logfile into separate files later if
 | |
|     necessary.  Such a script is provided with the Apache 1.3 distribution
 | |
|     in the <SAMP>src/support/split-logfile</SAMP> file.
 | |
|    </LI>
 | |
|    <LI>Increase the number of file descriptors available to the server
 | |
|     (see your system's documentation on the <CODE>limit</CODE> or
 | |
|     <CODE>ulimit</CODE> commands).  For some systems, information on
 | |
|     how to do this is available in the
 | |
|     <A HREF="perf-tuning.html">performance hints</A> page.  There is a specific
 | |
|     note for <A HREF="#freebsd-setsize">FreeBSD</A> below.
 | |
|     <P>
 | |
|     For Windows 95, try modifying your <SAMP>C:\CONFIG.SYS</SAMP> file to
 | |
|     include a line like
 | |
|     </P>
 | |
|     <DL>
 | |
|      <DD><CODE>FILES=300</CODE>
 | |
|      </DD>
 | |
|     </DL>
 | |
|     <P>
 | |
|     Remember that you'll need to reboot your Windows 95 system in order
 | |
|     for the new value to take effect.
 | |
|     </P>
 | |
|    </LI>
 | |
|    <LI>"Don't do that" - try to run with fewer virtual hosts
 | |
|    </LI>
 | |
|    <LI>Spread your operation across multiple server processes (using
 | |
|     <A HREF="../mod/mpm_common.html#listen"><SAMP>Listen</SAMP></A>
 | |
|     for example, but see the first point) and/or ports.
 | |
|    </LI>
 | |
|   </OL>
 | |
|   <P>
 | |
|   Since this is an operating-system limitation, there's not much else
 | |
|   available in the way of solutions.
 | |
|   </P>
 | |
|   <P>
 | |
|   As of 1.2.1 we have made attempts to work around various limitations
 | |
|   involving running with many descriptors.
 | |
|   <A HREF="descriptors.html">More information is available.</A>
 | |
|   </P>
 | |
|   <HR>
 | |
|  </LI>
 | |
| 
 | |
|  <LI><A NAME="freebsd-setsize">
 | |
|       <STRONG>Can I increase <SAMP>FD_SETSIZE</SAMP> on FreeBSD?</STRONG>
 | |
|      </A>
 | |
|   <P>
 | |
|   On versions of FreeBSD before 3.0, the <SAMP>FD_SETSIZE</SAMP> define 
 | |
|   defaults to 256.  This means that you will have trouble usefully using
 | |
|   more than 256 file descriptors in Apache.  This can be increased, but
 | |
|   doing so can be tricky.
 | |
|   </P>
 | |
|   <P>
 | |
|   If you are using a version prior to 2.2, you need to recompile your
 | |
|   kernel with a larger <SAMP>FD_SETSIZE</SAMP>.  This can be done by adding a 
 | |
|   line such as:
 | |
|   </P>
 | |
|   <DL>
 | |
|    <DD><CODE>options FD_SETSIZE <EM>nnn</EM></CODE>
 | |
|    </DD>
 | |
|   </DL>
 | |
|   <P>
 | |
|   to your kernel config file.  Starting at version 2.2, this is no
 | |
|   longer necessary.
 | |
|   </P>
 | |
|   <P>
 | |
|   If you are using a version of 2.1-stable from after 1997/03/10 or
 | |
|   2.2 or 3.0-current from before 1997/06/28, there is a limit in
 | |
|   the resolver library that prevents it from using more file descriptors
 | |
|   than what <SAMP>FD_SETSIZE</SAMP> is set to when libc is compiled.  To
 | |
|   increase this, you have to recompile libc with a higher
 | |
|   <SAMP>FD_SETSIZE</SAMP>.
 | |
|   </P>
 | |
|   <P>
 | |
|   In FreeBSD 3.0, the default <SAMP>FD_SETSIZE</SAMP> has been increased to
 | |
|   1024 and the above limitation in the resolver library
 | |
|   has been removed.
 | |
|   </P>
 | |
|   <P>
 | |
|   After you deal with the appropriate changes above, you can increase 
 | |
|   the setting of <SAMP>FD_SETSIZE</SAMP> at Apache compilation time 
 | |
|   by adding "<SAMP>-DFD_SETSIZE=<EM>nnn</EM></SAMP>" to the
 | |
|   <SAMP>EXTRA_CFLAGS</SAMP> line in your <SAMP>Configuration</SAMP>
 | |
|   file.
 | |
|   </P>
 | |
|   <HR>
 | |
|  </LI>
 | |
| 
 | |
|  <LI><A NAME="errordoc401">
 | |
|       <STRONG>Why doesn't my <CODE>ErrorDocument 401</CODE> work?</STRONG>
 | |
|      </A>
 | |
|   <P>
 | |
|   You need to use it with a URL in the form
 | |
|   "<SAMP>/foo/bar</SAMP>" and not one with a method and
 | |
|   hostname such as "<SAMP>http://host/foo/bar</SAMP>".  See the
 | |
|   <A HREF="../mod/core.html#errordocument"><SAMP>ErrorDocument</SAMP></A>
 | |
|   documentation for details.  This was incorrectly documented in the past.
 | |
|   </P>
 | |
|   <HR>
 | |
|  </LI>
 | |
| 
 | |
|  <LI><A NAME="cookies1">
 | |
|       <STRONG>Why does Apache send a cookie on every response?</STRONG>
 | |
|      </A>
 | |
|   <P>
 | |
|   Apache does <EM>not</EM> automatically send a cookie on every
 | |
|   response, unless you have re-compiled it with the
 | |
|   <A HREF="../mod/mod_usertrack.html"><SAMP>mod_usertrack</SAMP></A>
 | |
|   module, and specifically enabled it with the
 | |
|   <A HREF="../mod/mod_usertrack.html#cookietracking"
 | |
|   ><SAMP>CookieTracking</SAMP></A>
 | |
|   directive.
 | |
|   This module has been in Apache since version 1.2.
 | |
|   This module may help track users, and uses cookies to do this. If
 | |
|   you are not using the data generated by <SAMP>mod_usertrack</SAMP>, do
 | |
|   not compile it into Apache. 
 | |
|   </P>
 | |
|   <HR>
 | |
|  </LI>
 | |
| 
 | |
|  <LI><A NAME="cookies2">
 | |
|       <STRONG>Why don't my cookies work, I even compiled in
 | |
|       <SAMP>mod_cookies</SAMP>?
 | |
|       </STRONG>
 | |
|      </A>
 | |
|   <P>
 | |
|   Firstly, you do <EM>not</EM> need to compile in
 | |
|   <SAMP>mod_cookies</SAMP> in order for your scripts to work (see the
 | |
|   <A HREF="#cookies1">previous question</A>
 | |
|   for more about <SAMP>mod_cookies</SAMP>). Apache passes on your
 | |
|   <SAMP>Set-Cookie</SAMP> header fine, with or without this module. If
 | |
|   cookies do not work it will be because your script does not work
 | |
|   properly or your browser does not use cookies or is not set-up to
 | |
|   accept them.
 | |
|   </P>
 | |
|   <HR>
 | |
|  </LI>
 | |
| 
 | |
|  <LI><A NAME="jdk1-and-http1.1">
 | |
|       <STRONG>Why do my Java app[let]s give me plain text when I request
 | |
|       an URL from an Apache server?</STRONG>
 | |
|      </A>
 | |
|   <P>
 | |
|   As of version 1.2, Apache is an HTTP/1.1 (HyperText Transfer Protocol
 | |
|   version 1.1) server.  This fact is reflected in the protocol version
 | |
|   that's included in the response headers sent to a client when
 | |
|   processing a request.  Unfortunately, low-level Web access classes
 | |
|   included in the Java Development Kit (JDK) version 1.0.2 expect to see
 | |
|   the version string "HTTP/1.0" and do not correctly interpret
 | |
|   the "HTTP/1.1" value Apache is sending (this part of the
 | |
|   response is a declaration of what the server can do rather than a
 | |
|   declaration of the dialect of the response).  The result
 | |
|   is that the JDK methods do not correctly parse the headers, and
 | |
|   include them with the document content by mistake.
 | |
|   </P>
 | |
|   <P>
 | |
|   This is definitely a bug in the JDK 1.0.2 foundation classes from Sun,
 | |
|   and it has been fixed in version 1.1.  However, the classes in
 | |
|   question are part of the virtual machine environment, which means
 | |
|   they're part of the Web browser (if Java-enabled) or the Java
 | |
|   environment on the client system - so even if you develop
 | |
|   <EM>your</EM> classes with a recent JDK, the eventual users might
 | |
|   encounter the problem.
 | |
|   The classes involved are replaceable by vendors implementing the
 | |
|   Java virtual machine environment, and so even those that are based
 | |
|   upon the 1.0.2 version may not have this problem.
 | |
|   </P>
 | |
|   <P>
 | |
|   In the meantime, a workaround is to tell
 | |
|   Apache to "fake" an HTTP/1.0 response to requests that come
 | |
|   from the JDK methods; this can be done by including a line such as the
 | |
|   following in your server configuration files:
 | |
|   </P>
 | |
|   <P>
 | |
|   <DL>
 | |
|    <DD><CODE>BrowserMatch Java1.0 force-response-1.0
 | |
|     <BR>
 | |
|     BrowserMatch JDK/1.0 force-response-1.0</CODE>
 | |
|    </DD>
 | |
|   </DL>
 | |
|   <P></P>
 | |
|   <P>
 | |
|   More information about this issue can be found in the
 | |
|   <A HREF="http://www.apache.org/info/jdk-102.html"
 | |
|   ><CITE>Java and HTTP/1.1</CITE></A>
 | |
|   page at the Apache web site.
 | |
|   </P>
 | |
|   <HR>
 | |
|  </LI>
 | |
| 
 | |
|  <LI><A NAME="midi">
 | |
|       <STRONG>How do I get Apache to send a MIDI file so the browser can
 | |
|       play it?</STRONG>
 | |
|      </A>
 | |
|   <P>
 | |
|   Even though the registered MIME type for MIDI files is
 | |
|   <SAMP>audio/midi</SAMP>, some browsers are not set up to recognize it
 | |
|   as such; instead, they look for <SAMP>audio/x-midi</SAMP>.  There are
 | |
|   two things you can do to address this:
 | |
|   </P>
 | |
|   <OL>
 | |
|    <LI>Configure your browser to treat documents of type
 | |
|     <SAMP>audio/midi</SAMP> correctly.  This is the type that Apache
 | |
|     sends by default.  This may not be workable, however, if you have
 | |
|     many client installations to change, or if some or many of the
 | |
|     clients are not under your control.
 | |
|    </LI>
 | |
|    <LI>Instruct Apache to send a different <SAMP>Content-type</SAMP>
 | |
|     header for these files by adding the following line to your server's
 | |
|     configuration files:
 | |
|     <P>
 | |
|     <DL>
 | |
|      <DD><CODE>AddType audio/x-midi .mid .midi .kar</CODE>
 | |
|      </DD>
 | |
|     </DL>
 | |
|     <P></P>
 | |
|     <P>
 | |
|     Note that this may break browsers that <EM>do</EM> recognize the
 | |
|     <SAMP>audio/midi</SAMP> MIME type unless they're prepared to also
 | |
|     handle <SAMP>audio/x-midi</SAMP> the same way.
 | |
|     </P>
 | |
|    </LI>
 | |
|   </OL>
 | |
|   <HR>
 | |
|  </LI>
 | |
| 
 | |
|  <LI><A NAME="addlog">
 | |
|       <STRONG>How do I add browsers and referrers to my logs?</STRONG>
 | |
|      </A>
 | |
|   <P>
 | |
|   Apache provides a couple of different ways of doing this.  The
 | |
|   recommended method is to compile the
 | |
|   <A HREF="../mod/mod_log_config.html"><SAMP>mod_log_config</SAMP></A>
 | |
|   module into your configuration and use the
 | |
|   <A HREF="../mod/mod_log_config.html#customlog"><SAMP>CustomLog</SAMP></A>
 | |
|   directive.
 | |
|   </P>
 | |
|   <P>
 | |
|   You can either log the additional information in files other than your
 | |
|   normal transfer log, or you can add them to the records already being
 | |
|   written.  For example:
 | |
|   </P>
 | |
|   <P>
 | |
|   <CODE>
 | |
|    CustomLog logs/access_log "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\""
 | |
|   </CODE>
 | |
|   </P>
 | |
|   <P>
 | |
|   This will add the values of the <SAMP>User-agent:</SAMP> and
 | |
|   <SAMP>Referer:</SAMP> headers, which indicate the client and the
 | |
|   referring page, respectively, to the end of each line in the access
 | |
|   log.
 | |
|   </P>
 | |
|   <P>
 | |
|   You may want to check out the <CITE>Apache Week</CITE> article
 | |
|   entitled:
 | |
|   "<A HREF="http://www.apacheweek.com/features/logfiles" REL="Help"
 | |
|         ><CITE>Gathering Visitor Information: Customizing Your
 | |
|          Logfiles</CITE></A>".
 | |
|   </P>
 | |
|   <HR>
 | |
|  </LI>
 | |
| 
 | |
|  <LI><A NAME="set-servername">
 | |
|       <STRONG>Why does accessing directories only work when I include
 | |
|       the trailing "/"
 | |
|       (<EM>e.g.</EM>, <SAMP>http://foo.domain.com/~user/</SAMP>)
 | |
|       but not when I omit it
 | |
|       (<EM>e.g.</EM>, <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
 | |
|   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.
 | |
|   </P>
 | |
|   <P>
 | |
|   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="no-info-directives">
 | |
|       <STRONG>Why doesn't mod_info list any directives?</STRONG>
 | |
|      </A>
 | |
|   <P>
 | |
|   The <A HREF="../mod/mod_info.html"><SAMP>mod_info</SAMP></A>
 | |
|   module allows you to use a Web browser to see how your server is
 | |
|   configured.  Among the information it displays is the list modules and
 | |
|   their configuration directives.  The "current" values for
 | |
|   the directives are not necessarily those of the running server; they
 | |
|   are extracted from the configuration files themselves at the time of
 | |
|   the request.  If the files have been changed since the server was last
 | |
|   reloaded, the display will not match the values actively in use.
 | |
|   If the files and the path to the files are not readable by the user as
 | |
|   which the server is running (see the
 | |
|   <A HREF="../mod/mpm_common.html#user"><SAMP>User</SAMP></A>
 | |
|   directive), then <SAMP>mod_info</SAMP> cannot read them in order to
 | |
|   list their values.  An entry <EM>will</EM> be made in the error log in
 | |
|   this event, however.
 | |
|   </P>
 | |
|   <HR>
 | |
|  </LI>
 | |
| 
 | |
|  <LI><A NAME="namevhost">
 | |
|       <STRONG>I upgraded to Apache 1.3 and now my virtual hosts don't
 | |
|       work!</STRONG>
 | |
|      </A>
 | |
|   <P>
 | |
|   In versions of Apache prior to 1.3b2, there was a lot of confusion
 | |
|   regarding address-based virtual hosts and (HTTP/1.1) name-based
 | |
|   virtual hosts, and the rules concerning how the server processed
 | |
|   <SAMP><VirtualHost></SAMP> definitions were very complex and not
 | |
|   well documented.
 | |
|   </P>
 | |
|   <P>
 | |
|   Apache 1.3b2 introduced a new directive,
 | |
|   <A HREF="http://www.apache.org/docs/mod/core.html#namevirtualhost"
 | |
|   ><SAMP>NameVirtualHost</SAMP></A>,
 | |
|   which simplifies the rules quite a bit.  However, changing the rules
 | |
|   like this means that your existing name-based
 | |
|   <SAMP><VirtualHost></SAMP> containers probably won't work
 | |
|   correctly immediately following the upgrade.
 | |
|   </P>
 | |
|   <P>
 | |
|   To correct this problem, add the following line to the beginning of
 | |
|   your server configuration file, before defining any virtual hosts:
 | |
|   </P>
 | |
|   <DL>
 | |
|    <DD><CODE>NameVirtualHost <EM>n.n.n.n</EM></CODE>
 | |
|    </DD>
 | |
|   </DL>
 | |
|   <P>
 | |
|   Replace the "<SAMP>n.n.n.n</SAMP>" with the IP address to
 | |
|   which the name-based virtual host names resolve; if you have multiple
 | |
|   name-based hosts on multiple addresses, repeat the directive for each
 | |
|   address.
 | |
|   </P>
 | |
|   <P>
 | |
|   Make sure that your name-based <SAMP><VirtualHost></SAMP> blocks
 | |
|   contain <SAMP>ServerName</SAMP> and possibly <SAMP>ServerAlias</SAMP>
 | |
|   directives so Apache can be sure to tell them apart correctly.
 | |
|   </P>
 | |
|   <P>
 | |
|   Please see the <A HREF="../vhosts/">Apache
 | |
|   Virtual Host documentation</A> for further details about configuration.
 | |
|   </P>
 | |
|   <HR>
 | |
|  </LI>
 | |
| 
 | |
|  <LI><A NAME="redhat-htm">
 | |
|       <STRONG>I'm using RedHat Linux and my .htm files are showing
 | |
|       up as HTML source rather than being formatted!</STRONG>
 | |
|      </A>
 | |
| 
 | |
|   <P>
 | |
|   RedHat messed up and forgot to put a content type for <CODE>.htm</CODE>
 | |
|   files into <CODE>/etc/mime.types</CODE>.  Edit <CODE>/etc/mime.types</CODE>,
 | |
|   find the line containing <CODE>html</CODE> and add <CODE>htm</CODE> to it.
 | |
|   Then restart your httpd server:
 | |
|   </P>
 | |
|   <DL>
 | |
|    <DD><CODE>kill -HUP `cat /var/run/httpd.pid`</CODE>
 | |
|    </DD>
 | |
|   </DL>
 | |
|   <P>
 | |
|   Then <STRONG>clear your browsers' caches</STRONG>.  (Many browsers won't
 | |
|   re-examine the content type after they've reloaded a page.)
 | |
|   </P>
 | |
|   <HR>
 | |
|  </LI>
 | |
| 
 | |
|  <LI><A NAME="htaccess-work">
 | |
|        <STRONG>My <CODE>.htaccess</CODE> files are being ignored.</STRONG></A>
 | |
|    <P>
 | |
|    This is almost always due to your <A HREF="../mod/core.html#allowoverride">
 | |
|    AllowOverride</A> directive being set incorrectly for the directory in 
 | |
|    question.  If it is set to <CODE>None</CODE> then .htaccess files will 
 | |
|    not even be looked for.  If you do have one that is set, then be certain 
 | |
|    it covers the directory you are trying to use the .htaccess file in.  
 | |
|    This is normally accomplished by ensuring it is inside the proper 
 | |
|    <A HREF="../mod/core.html#directory">Directory</A> container.
 | |
|    </P>
 | |
|    <HR>
 | |
|  </LI>
 | |
|  <LI><A NAME="forbidden">
 | |
|        <STRONG>Why do I get a "<SAMP>Forbidden</SAMP>" message 
 | |
|        whenever I try to access a particular directory?</STRONG></A>
 | |
|    <P>
 | |
|    This message is generally caused because either
 | |
|    </P>
 | |
|    <UL>
 | |
|     <LI>The underlying file system permissions do not allow the
 | |
|      User/Group under which Apache is running to access the necessary
 | |
|      files; or
 | |
|     <LI>The Apache configuration has some access restrictions in 
 | |
|      place which forbid access to the files.
 | |
|    </UL>
 | |
|    <P>
 | |
|    You can determine which case applies to your situation by checking the
 | |
|    error log.
 | |
|    </P>
 | |
|    <P>
 | |
|    In the case where file system permission are at fault, remember
 | |
|    that not only must the directory and files in question be readable,
 | |
|    but also all parent directories must be at least searchable by the
 | |
|    web server in order for the content to be accessible.
 | |
|    </P>
 | |
|    <HR>
 | |
|  </LI>
 | |
|  <LI><A NAME="ie-ignores-mime">
 | |
|        <STRONG>Why do my files appear correctly in Internet
 | |
|        Explorer, but show up as source or trigger a save window
 | |
|        with Netscape?</STRONG></A> 
 | |
|    <P>
 | |
|    Internet Explorer (IE) and Netscape handle mime type detection in different
 | |
|    ways, and therefore will display the document differently.  In particular,
 | |
|    IE sometimes relies on the file extension to determine the mime type.  This
 | |
|    can happen when the server specifies a mime type of
 | |
|    <CODE>application/octet-stream</CODE> or <CODE>text/plain</CODE>.
 | |
|    (Unfortunately, this behavior makes it impossible to properly send plain
 | |
|    text in some situations unless the file extension is <CODE>txt</CODE>.)
 | |
|    There are more details available on IE's mime type detection behavior in an
 | |
|    <A HREF="http://msdn.microsoft.com/workshop/networking/moniker/overview/appendix_a.asp">MSDN
 | |
|    article</A>.
 | |
|    </P>
 | |
| 
 | |
|    <P>
 | |
|    In order to make all browsers work correctly, you should assure
 | |
|    that Apache sends the correct mime type for the file.  This is
 | |
|    accomplished by editing the <CODE>mime.types</CODE> file or using
 | |
|    an <A HREF="../mod/mod_mime.html#addtype"><CODE>AddType</CODE></A>
 | |
|    directive in the Apache configuration files.
 | |
|    </P>
 | |
|    <HR>
 | |
|   </LI>
 | |
| </OL>
 | |
| <!--#endif -->
 | |
| <!--#if expr="$STANDALONE" -->
 | |
|   <!-- Don't forget to add HR tags at the end of each list item.. -->
 | |
| 
 | |
| <!--#include virtual="footer.html" -->
 | |
| </BODY>
 | |
| </HTML>
 | |
| <!--#endif -->
 |