coar 97/06/11 04:57:21
Modified: htdocs/manual/misc FAQ.html
Log:
Added a semi-FAQ about why mod_info doesn't display directive
values. Also, lots of general cleanup.
Revision Changes Path
1.67 +156 -94 apache/htdocs/manual/misc/FAQ.html
Index: FAQ.html
===================================================================
RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v
retrieving revision 1.66
retrieving revision 1.67
diff -C3 -r1.66 -r1.67
*** FAQ.html 1997/06/10 16:04:43 1.66
--- FAQ.html 1997/06/11 11:57:19 1.67
***************
*** 15,21 ****
<!--#include virtual="header.html" -->
<H1 ALIGN="CENTER">Apache Server Frequently Asked Questions</H1>
<P>
! $Revision: 1.66 $ ($Date: 1997/06/10 16:04:43 $)
</P>
<P>
The latest version of this FAQ is always available from the main
--- 15,21 ----
<!--#include virtual="header.html" -->
<H1 ALIGN="CENTER">Apache Server Frequently Asked Questions</H1>
<P>
! $Revision: 1.67 $ ($Date: 1997/06/11 11:57:19 $)
</P>
<P>
The latest version of this FAQ is always available from the main
***************
*** 35,40 ****
--- 35,45 ----
<!-- apache.org or apacheweek.com). -->
<!-- - 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>
***************
*** 51,58 ****
<!-- - mod_auth & passwd lines "user:pw:.*" - ++1st colon onward is -->
<!-- treated as pw, not just ++1st to --2nd. -->
<!-- - SSL: -->
! <!-- Can I use Apache-SSL for free in Canada? -->
! <!-- Why can't I use Apache-SSL in the U.S.? -->
<!-- - How can I found out how many visitors my site gets? -->
<!-- - How do I add a counter? -->
<!-- - How do I configure Apache as a proxy? -->
--- 56,63 ----
<!-- - mod_auth & passwd lines "user:pw:.*" - ++1st colon onward is -->
<!-- treated as pw, not just ++1st to --2nd. -->
<!-- - SSL: -->
! <!-- - Can I use Apache-SSL for free in Canada? -->
! <!-- - Why can't I use Apache-SSL in the U.S.? -->
<!-- - How can I found out how many visitors my site gets? -->
<!-- - How do I add a counter? -->
<!-- - How do I configure Apache as a proxy? -->
***************
*** 71,77 ****
<!-- - Fix midi question; a bigger problem than midi vs. x-midi is -->
<!-- the simple fact that older versions of Apache (and new ones -->
<!-- that have been upgraded without upgrading the mime.types -->
! <!-- file don't have the type listed at all. -->
<UL>
<LI><STRONG>Background</STRONG>
<OL START=1>
--- 76,82 ----
<!-- - Fix midi question; a bigger problem than midi vs. x-midi is -->
<!-- the simple fact that older versions of Apache (and new ones -->
<!-- that have been upgraded without upgrading the mime.types -->
! <!-- file) don't have the type listed at all. -->
<UL>
<LI><STRONG>Background</STRONG>
<OL START=1>
***************
*** 159,165 ****
Apache buffering it?</A>
</LI>
<LI><A HREF="#linuxiovec">Why do I get complaints about redefinition
! of `struct iovec' when compiling under Linux?</A>
</LI>
<LI><A HREF="#wheres-the-dump">The errorlog says Apache dumped core,
but where's the dump file?</A>
--- 164,170 ----
Apache buffering it?</A>
</LI>
<LI><A HREF="#linuxiovec">Why do I get complaints about redefinition
! of "<CODE>struct iovec</CODE>" when compiling under Linux?</A>
</LI>
<LI><A HREF="#wheres-the-dump">The errorlog says Apache dumped core,
but where's the dump file?</A>
***************
*** 182,200 ****
logs?</A>
</LI>
<LI><A HREF="#bind8.1">Why do I get an error about an undefined
! reference to "__inet_ntoa" or other __inet_* symbols?</A>
</LI>
<LI><A HREF="#set-servername">Why does accessing directories only work
! when I include the trailing "/" (eg. <CODE>http://foo.domain.com/~user/
! </CODE>) but not when I omit it (eg. <CODE>http://foo.domain.com/~user
! </CODE>)?</A>
</LI>
! <LI><A HREF="#user-authentication">How do I setup Apache to require
a username and password to access certain documents?</A>
</LI>
! <LI><A HREF="#remote-auth-only">How do I setup 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?</A>
</OL>
</LI>
</UL>
--- 187,211 ----
logs?</A>
</LI>
<LI><A HREF="#bind8.1">Why do I get an error about an undefined
! reference to "<SAMP>__inet_ntoa</SAMP>" or other
! <SAMP>__inet_*</SAMP> symbols?</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="#user-authentication">How do I set up Apache to require
a username and password to access certain documents?</A>
</LI>
! <LI><A HREF="#remote-auth-only">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?</A>
! </LI>
! <LI><A HREF="#no-info-directives">Why doesn't mod_info list any
! directives?</A>
! </LI>
</OL>
</LI>
</UL>
***************
*** 460,475 ****
dump, please include a backtrace (if possible). As an example,
</P>
<P>
! <CODE>
! <DL>
! <DD># cd <EM>ServerRoot</EM>
! </DD>
! <DD># dbx httpd core
! </DD>
! <DD>(dbx) where
! </DD>
! </DL>
! </CODE>
</P>
<P>
(Substitute the appropriate locations for your
--- 471,482 ----
dump, please include a backtrace (if possible). As an example,
</P>
<P>
! <DL>
! <DD><CODE># cd <EM>ServerRoot</EM><BR>
! # dbx httpd core<BR>
! (dbx) where</CODE>
! </DD>
! </DL>
</P>
<P>
(Substitute the appropriate locations for your
***************
*** 538,552 ****
--- 545,563 ----
</DD>
</DL>
</P>
+ <P>
The server will then recognize that all files in that location (and
its logical descendants) that end in "<SAMP>.cgi</SAMP>"
are script files, not documents.
+ </P>
</LI>
<LI>Make sure that the directory location is covered by an
<A
HREF="../mod/core.html#options"
><SAMP>Options</SAMP></A>
declaration that includes the <SAMP>ExecCGI</SAMP> option.
+ <P>
+ </P>
</LI>
</OL>
<HR>
***************
*** 565,584 ****
first <CODE>print</CODE> or <CODE>write</CODE> statement:
</P>
<P>
! <CODE>
! <DL>
! <DD>$cfh = select (STDOUT);
! </DD>
! <DD>$| = 1;
! </DD>
! <DD>select ($cfh);
! </DD>
! </DL>
! </CODE>
</P>
<P>
This is generally only necessary when you are calling external
! programs from your script that send output to stdout.
<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
--- 576,595 ----
first <CODE>print</CODE> or <CODE>write</CODE> statement:
</P>
<P>
! <DL>
! <DD><CODE>$cfh = select (STDOUT);<BR>
! $| = 1;<BR>
! select ($cfh);</CODE>
! </DD>
! </DL>
</P>
<P>
This is generally only necessary when you are calling external
! programs from your script that send output to stdout, or if there will
! be along delay between the time the headers are sent and the actual
! content starts being emitted. To maximise performance, you should
! turn buffering back <EM>on</EM> (with <CODE>$| = 0</CODE> or the
! equivalent) after the statements that send the headers.
<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
***************
*** 601,607 ****
Processing a document at run-time is called <EM>parsing</EM> it; hence
the term "parsed HTML" sometimes used for documents that
contain SSI instructions. Parsing tends to be <EM>extremely</EM>
! resource-consumptive, and is not enabled by default.
</P>
<P>
To enable SSI processing, you need to
--- 612,624 ----
Processing a document at run-time is called <EM>parsing</EM> it; hence
the term "parsed HTML" sometimes used for documents that
contain SSI instructions. Parsing tends to be <EM>extremely</EM>
! resource-consumptive, and is not enabled by default. It can also
! interfere with the cachability of your documents, which can put a
! further load on your server. (see the
! <A
! HREF="#ssi-part-ii"
! >next question</A>
! for more information about this.)
</P>
<P>
To enable SSI processing, you need to
***************
*** 709,715 ****
<STRONG>Does or will Apache act as a Proxy server?</STRONG>
</A>
<P>
! Apache version 1.1 and above comes with a proxy module. If compiled
in, this will make Apache act as a caching-proxy server.
</P>
<HR>
--- 726,736 ----
<STRONG>Does or will Apache act as a Proxy server?</STRONG>
</A>
<P>
! Apache version 1.1 and above comes with a
! <A
! HREF="../mod/mod_proxy.html"
! >proxy module</A>.
! If compiled
in, this will make Apache act as a caching-proxy server.
</P>
<HR>
***************
*** 821,837 ****
would affect the location where the POST-handling script resides:
</P>
<P>
! <CODE>
! <DL>
! <DD><Limit GET>
! </DD>
! <DD> :
! </DD>
! </DL>
! </CODE>
</P>
<P>
! Change that to <SAMP><Limit GET POST></SAMP> and the problem
will probably go away.
</P>
<HR>
--- 842,854 ----
would affect the location where the POST-handling script resides:
</P>
<P>
! <DL>
! <DD><CODE><Limit GET><BR> :</CODE>
! </DD>
! </DL>
</P>
<P>
! Change that to <CODE><Limit GET POST></CODE> and the problem
will probably go away.
</P>
<HR>
***************
*** 893,900 ****
<STRONG>Why doesn't my <CODE>ErrorDocument 401</CODE> work?</STRONG>
</A>
<P>
! You need to use it with a URL in the form "/foo/bar" and not one
! with a method and hostname such as "http://host/foo/bar". See the
<A
HREF="../mod/core.html#errordocument"
><SAMP>ErrorDocument</SAMP></A>
--- 910,918 ----
<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>
***************
*** 1093,1117 ****
<P>
As an example how you might handle the former (in a Perl script):
</P>
! <CODE>
! <DL>
! <DD>if ($0 =~ m:/*nph-:) {
! <BR>
!
! $HTTP_headers =
! "HTTP/1.1 200 OK\015\012";
! <BR>
!
! $HTTP_headers .=
! "Connection: close\015\012";
! <BR>
!
! printf ($HTTP_headers);
! <BR>
! };
! </DD>
! </DL>
! </CODE>
<P>
and then follow with your normal non-<SAMP>nph</SAMP> headers.
</P>
--- 1111,1135 ----
<P>
As an example how you might handle the former (in a Perl script):
</P>
! <P>
! <DL>
! <DD><CODE>if ($0 =~ m:/*nph-:) {
! <BR>
!
! $HTTP_headers =
! "HTTP/1.1 200 OK\015\012";
! <BR>
!
! $HTTP_headers .=
! "Connection: close\015\012";
! <BR>
!
! printf ($HTTP_headers);
! <BR>
! };</CODE>
! </DD>
! </DL>
! </P>
<P>
and then follow with your normal non-<SAMP>nph</SAMP> headers.
</P>
***************
*** 1119,1125 ****
</LI>
<LI><A NAME="linuxiovec">
<STRONG>Why do I get complaints about redefinition
! of `struct iovec' when compiling under Linux?</STRONG>
</A>
<P>
This is a conflict between your C library includes and your kernel
--- 1137,1143 ----
</LI>
<LI><A NAME="linuxiovec">
<STRONG>Why do I get complaints about redefinition
! of "<CODE>struct iovec</CODE>" when compiling under
Linux?</STRONG>
</A>
<P>
This is a conflict between your C library includes and your kernel
***************
*** 1143,1149 ****
file?</STRONG>
</A>
<P>
! In Apache version 1.2 (beginning with 1.2b8), 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;
--- 1161,1167 ----
file?</STRONG>
</A>
<P>
! 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;
***************
*** 1197,1206 ****
--- 1215,1227 ----
this by adding the <SAMP>-DMAXIMUM_DNS</SAMP> clause to the
<SAMP>EXTRA_CFLAGS</SAMP> definition in your
<SAMP>Configuration</SAMP> file. For example:
+ </P>
+ <P>
<DL>
<DD><CODE>EXTRA_CFLAGS=-DMAXIMUM_DNS</CODE>
</DD>
</DL>
+ </P>
<P>
This will cause Apache to be very paranoid about making sure a
particular host address is <EM>really</EM> assigned to the name it
***************
*** 1273,1282 ****
--- 1294,1305 ----
<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>
Note that this may break browsers that <EM>do</EM> recognize the
<SAMP>audio/midi</SAMP> MIME type unless they're prepared to also
***************
*** 1384,1390 ****
</LI>
<LI><A NAME="bind8.1">
<STRONG>Why do I get an error about an undefined reference to
! "__inet_ntoa" or other __inet_* symbols?</STRONG>
</A>
<P>
If you have installed <A HREF="http://www.isc.org/bind.html">BIND-8</A>
--- 1407,1414 ----
</LI>
<LI><A NAME="bind8.1">
<STRONG>Why do I get an error about an undefined reference to
! "<SAMP>__inet_ntoa</SAMP>" or other
! <SAMP>__inet_*</SAMP> symbols?</STRONG>
</A>
<P>
If you have installed <A HREF="http://www.isc.org/bind.html">BIND-8</A>
***************
*** 1402,1417 ****
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_LFLAGS</CODE> line in your <CODE>Configuration</CODE>
! file, then re-running <CODE>Configure</CODE> should resolve the
problem.
</P>
<HR>
</LI>
<LI><A NAME="set-servername">
<STRONG>Why does accessing directories only work when I include
! the trailing "/" (eg. <CODE>http://foo.domain.com/~user/</CODE>)
but not when I omit it
! (eg. <CODE>http://foo.domain.com/~user</CODE>)?</STRONG>
</A>
<P>
When you access a directory without a trailing "/", Apache needs
--- 1426,1442 ----
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_LFLAGS</CODE> line in your <CODE>Configuration</CODE>
! file, then re-running <CODE>Configure</CODE>, should resolve the
problem.
</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
***************
*** 1425,1480 ****
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="user-authentication">
! <STRONG>How do I setup 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
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.
</P>
<P>
For an explaination on how to implement these restrictions, see
! ApacheWeek's <A HREF="http://www.apacheweek.com/features/userauth">
! Using User Authentication</A> or
! <A HREF="http://www.apacheweek.com/features/dbmauth">
! DBM User Authentication</A> tutorials.
</P>
<HR>
</LI>
<LI><A NAME="remote-auth-only">
! <STRONG>How do I setup 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>
<P>
! Use the <A HREF="../mod/core.html#satisfy">Satsify</A> directive,
! in particular the <CODE>Satsify Any</CODE> directive to require
that only one of the access restrictions be met. For example,
! adding the following configuration to a <CODE>.htaccess</CODE>
or server configuration file would restrict access to people who
either are accessing the site from a host under domain.com or
who can supply a valid username and password:
</P>
! <PRE>
! deny from all
! allow from .domain.com
! AuthType Basic
! AuthUserFile /usr/local/etc/httpd/conf/htpasswd.users
! AuthName special directory
! require valid-user
! satisfy any
! </PRE>
! <P>See the <A HREF="#user-authentication">user authentication</A>
question and the <A HREF="../mod/mod_access.html">mod_access</A>
module for details on how the above directives work.
</P>
<HR>
</LI>
--- 1450,1542 ----
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="user-authentication">
! <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
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.
</P>
<P>
For an explaination on how to implement these restrictions, see
! <A
! HREF="http://www.apacheweek.com/"
! ><CITE>Apache Week</CITE></A>'s
! articles on
! <A
! HREF="http://www.apacheweek.com/features/userauth"
! ><CITE>Using User Authentication</CITE></A>
! or
! <A
! HREF="http://www.apacheweek.com/features/dbmauth"
! ><CITE>DBM User Authentication</CITE></A>.
</P>
<HR>
</LI>
<LI><A NAME="remote-auth-only">
! <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>
<P>
! Use the <A HREF="../mod/core.html#satisfy">Satisfy</A> directive,
! in particular the <CODE>Satisfy Any</CODE> directive, to require
that only one of the access restrictions be met. For example,
! adding the following configuration to a <SAMP>.htaccess</SAMP>
or server configuration file would restrict access to people who
either are accessing the site from a host under domain.com or
who can supply a valid username and password:
</P>
! <P>
! <DL>
! <DD><CODE>deny from all<BR>
! allow from .domain.com<BR>
! AuthType Basic<BR>
! AuthUserFile /usr/local/etc/httpd/conf/htpasswd.users<BR>
! AuthName special directory<BR>
! require valid-user<BR>
! satisfy any</CODE>
! </DD>
! </DL>
! </P>
! <P>
! See the <A HREF="#user-authentication">user authentication</A>
question and the <A HREF="../mod/mod_access.html">mod_access</A>
module for details on how the above directives work.
+ </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 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/core.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>