2N/A<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" 2N/A<
TITLE>Apache HTTP Server: Notes about Compatibility with NCSA's Server</
TITLE>
2N/A<!-- Background white, links blue (unvisited), navy (visited), red (active) --> 2N/A<
blockquote><
strong>Warning:</
strong>
2N/AThis document has not been updated to take into account changes
2N/Amade in the 2.0 version of the Apache HTTP Server. Some of the
2N/Ainformation may still be relevant, but please use it
2N/A<
H1 ALIGN="CENTER">Compatibility Notes with NCSA's Server</
H1>
2N/AWhile Apache is for the most part a drop-in replacement for NCSA's
2N/Ahttpd, there are a couple gotcha's to watch out for. These are mostly
2N/Adue to the fact that the parser for config and access control files
2N/Awas rewritten from scratch, so certain liberties the earlier servers
2N/Atook may not be available here. These are all easily fixable. If you
2N/Aknow of other problems that belong here, <
A 2N/Aclient problems</
A> page.
2N/A<
LI>As of Apache 1.3.1, methods named in a
2N/A section <
EM>must</
EM> be listed in upper-case. Lower- or mixed-case
2N/A method names will result in a configuration error.
2N/A<
LI>The basic mod_auth <
CODE>AuthGroupFile</
CODE>-specified group file
2N/A format allows commas between user names - Apache does not.
2N/A<
LI>If you follow the NCSA guidelines for setting up access
2N/A restrictions based on client domain, you may well have added
2N/A entries for <
CODE>AuthType, AuthName, AuthUserFile</
CODE> or
2N/A <
CODE>AuthGroupFile</
CODE>. <
STRONG>None</
STRONG> of these are
2N/A needed (or appropriate) for restricting access based on client
2N/A domain. When Apache sees <
CODE>AuthType</
CODE> it (reasonably)
2N/A assumes you are using some authorization type based on username
2N/A and password. Please remove <
CODE>AuthType</
CODE>, it's
2N/A unnecessary even for NCSA.
2N/A<
LI><
CODE>OldScriptAlias</
CODE> is no longer supported.
2N/A<
LI><
CODE>exec cgi=""</
CODE> produces reasonable <
STRONG>malformed
2N/A header</
STRONG> responses when used to invoke non-CGI scripts.<
BR>
2N/A The NCSA code ignores the missing header (bad idea).
2N/A <
BR>Solution: write CGI to the CGI spec and use
2N/A <
CODE>include virtual</
CODE>, or use <
CODE>exec cmd=""</
CODE> instead.
2N/A<
LI>Icons for FancyIndexing broken - well, no, they're not broken,
2N/A we've just upgraded the icons from flat .xbm files to pretty and
2N/A much smaller .gif files, courtesy of <
A 2N/A HREF="mailto:kevinh@eit.com">Kevin Hughes</
A> at <
A 2N/A srm.conf from an old distribution, make sure you add the new <
A 2N/A<
LI>Apache versions before 1.2b1 will ignore the last line of configuration
2N/A files if the last line does not have a trailing newline. This affects
2N/A htpasswd and htgroup files.
2N/A<
LI>Apache does not permit commas delimiting the methods in <Limit>.
2N/A<
LI>Apache's <
CODE><VirtualHost></
CODE> treats all addresses as
2N/A "optional" (<
EM>
i.e.</
EM>, the server should continue booting if it can't
2N/A resolve the address). Whereas in NCSA the default is to fail
2N/A booting unless an added <
CODE>optional</
CODE> keyword is included.
2N/A<
LI>Apache does not implement <
CODE>OnDeny</
CODE>; use
2N/A<
LI>Apache (as of 1.3) always performs the equivalent of
2N/A <
CODE>HostnameLookups minimal</
CODE>. <
CODE>minimal</
CODE> is not an
2N/A HostnameLookups</
CODE></
A>.
2N/A<
LI>To embed spaces in directive arguments NCSA used a backslash
2N/A before the space. Apache treats backslashes as normal characters. To
2N/A embed spaces surround the argument with double-quotes instead.
2N/A<
LI>Apache does not implement the NCSA <
CODE>referer</
CODE>
2N/A PR#968</
A> for a few brief suggestions on alternative ways to
2N/A implement the same thing under Apache.
2N/A<
LI>Apache does not allow ServerRoot settings inside a VirtualHost
2N/A container. There is only one global ServerRoot in Apache; any desired
2N/A changes in paths for virtual hosts need to be made with the explicit
2N/A directives, <
em>
e.g.</
em>, DocumentRoot, TransferLog, <
EM>etc.</
EM>
2N/AMore to come when we notice them....