compat_notes.html revision fc891500135b18740c60ea32a7ea0a069e8eafd7
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync "http://www.w3.org/TR/REC-html40/loose.dtd">
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<HTML>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<HEAD>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<TITLE>Apache HTTP Server: Notes about Compatibility with NCSA's Server</TITLE>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync</HEAD>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<BODY
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync BGCOLOR="#FFFFFF"
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync TEXT="#000000"
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync LINK="#0000FF"
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync VLINK="#000080"
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync ALINK="#FF0000"
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<!--#include virtual="header.html" -->
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<H1 ALIGN="CENTER">Compatibility Notes with NCSA's Server</H1>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<HR>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncWhile Apache is for the most part a drop-in replacement for NCSA's
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynchttpd, there are a couple gotcha's to watch out for. These are mostly
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdue to the fact that the parser for config and access control files
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncwas rewritten from scratch, so certain liberties the earlier servers
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctook may not be available here. These are all easily fixable. If you
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncknow of other non-fatal problems that belong here, <A
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncHREF="http://www.apache.org/bug_report.html">let us know.</A>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<P>Please also check the <A HREF="known_client_problems.html">known
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncclient problems</A> page.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<OL>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<LI>As of Apache 1.3.1, methods named in a
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync <A HREF="/mod/core.html#limit"><SAMP>&lt;Limit&gt;</SAMP></A>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync section <EM>must</EM> be listed in upper-case. Lower- or mixed-case
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync method names will result in a configuration error.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync <P>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync </P>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync</LI>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<LI>The basic mod_auth <CODE>AuthGroupFile</CODE>-specified group file
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync format allows commas between user names - Apache does not.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<P>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<LI>If you follow the NCSA guidelines for setting up access
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync restrictions based on client domain, you may well have added
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync entries for, <CODE>AuthType, AuthName, AuthUserFile</CODE> or
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync <CODE>AuthGroupFile</CODE>. <STRONG>None</STRONG> of these are
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync needed (or appropriate) for restricting access based on client
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync domain. When Apache sees <CODE>AuthType</CODE> it (reasonably)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync assumes you are using some authorization type based on username
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync and password. Please remove <CODE>AuthType</CODE>, it's
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync unnecessary even for NCSA.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<P>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<LI><CODE>OldScriptAlias</CODE> is no longer supported.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<P>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<LI><CODE>exec cgi=""</CODE> produces reasonable <STRONG>malformed
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync header</STRONG> responses when used to invoke non-CGI scripts.<BR>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync The NCSA code ignores the missing header. (bad idea)<BR> Solution:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync write CGI to the CGI spec or use <CODE>exec cmd=""</CODE> instead.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync <P>We might add <CODE>virtual</CODE> support to <CODE>exec
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync cmd</CODE> to make up for this difference.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<P>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<LI>Icons for FancyIndexing broken - well, no, they're not broken,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync we've just upgraded the icons from flat .xbm files to pretty and
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync much smaller .gif files, courtesy of <A
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync HREF="mailto:kevinh@eit.com">Kevin Hughes</A> at <A
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync HREF="http://www.eit.com/">EIT</A>. If you are using the same
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync srm.conf from an old distribution, make sure you add the new <A
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync HREF="/mod/mod_autoindex.html#addicon">AddIcon</A>, <A
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync HREF="/mod/mod_autoindex.html#addiconbytype">AddIconByType</A>,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync and <A
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync HREF="/mod/mod_autoindex.html#defaulticon">DefaultIcon</A>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync directives.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync<P>
<LI>Apache versions before 1.2b1 will ignore the last line of configuration
files if the last line does not have a trailing newline. This affects
configuration files (httpd.conf, access.conf and srm.conf), and
htpasswd and htgroup files.
<P>
<LI>Apache does not permit commas delimiting the methods in &lt;Limit&gt;.
<P>
<LI>Apache's <CODE>&lt;VirtualHost&gt;</CODE> treats all addresses as
"optional" (<EM>i.e.</EM>, the server should continue booting if it can't
resolve the address). Whereas in NCSA the default is to fail
booting unless an added <CODE>optional</CODE> keyword is included.
<P>
<LI>Apache does not implement <CODE>OnDeny</CODE> use
<A HREF="/mod/core.html#errordocument"><CODE>ErrorDocument</CODE></A>
instead.
<P>
<LI>Apache (as of 1.3) always performs the equivalent of
<CODE>HostnameLookups minimal</CODE>. <CODE>minimal</CODE> is not an
option to <A HREF="/mod/core.html#hostnamelookups"><CODE>
HostnameLookups</CODE></A>.
<P>
<LI>To embed spaces in directive arguments NCSA used a backslash
before the space. Apache treats backslashes as normal characters. To
embed spaces surround the argument with double-quotes instead.
<P>
<LI>Apache does not implement the NCSA <CODE>referer</CODE>
directive. See <A HREF="http://bugs.apache.org/index/full/968">
PR#968</A> for a few brief suggestions on alternative ways to
implement the same thing under Apache.
<P>
<LI>Apache does not allow ServerRoot settings inside a VirtualHost
container. There is only one global ServerRoot in Apache; any desired
changes in paths for virtual hosts need to be made with the explicit
directives, eg. DocumentRoot, TransferLog, etc.
</OL>
More to come when we notice them....
<!--#include virtual="footer.html" -->
</BODY>
</HTML>