![[APACHE DOCUMENTATION]](images/sub.gif) 
 In order to assist folks upgrading we are now going to maintain a
document describing information critical to existing Apache users.  Note
that it only lists differences between recent major releases, so
for example, folks using Apache 1.1 or earlier will have to figure out
what changed up to Apache 1.2 before this document can be considered
relevant.  Old users could look at the src/CHANGES file
which tracks code changes.
These are intended to be brief notes, and you should be able to find
more information in either the New Features
document, or in the src/CHANGES file.
Module directive has been changed to the
    AddModule directive.
  Configuration variable EXTRA_LFLAGS has
    been renamed EXTRA_LDFLAGS.
  
  -DMAXIMUM_DNS definition has been obsoleted by
    changes to mod_access enforcing double-reverse DNS lookups
    when necessary.
  -DSERVER_SUBVERSION=\"string\" compile-time option has
   been replaced with the run-time API call
   ap_add_version_component().  Compile-time modification of the
   server identity by the configuration scripts is no longer supported.
  mod_dir has been split into two pieces
    mod_autoindex, and
    mod_dir.
  mod_browser has been
    replaced by mod_setenvif.
  suexec,
    or adding -DUSE_FCNTL_SERIALIZED_ACCEPT to
    EXTRA_CFLAGS.  This is slower, more information is available
    on the performance tuning
    page.  There is a mild denial of service attack possible with the
    default config, but the default config is an order of magnitude faster.
  mod_auth_msql has been removed from the distribution.
  mod_expires
    will add Expires headers to content that does not come from a file 
    on disk, unless you are using a modification time based setting.
    Previously, it would never add an Expires header unless content came
    from a file on disk.  This could result in Expires headers being added
    in places where they were not previously added.
  
     AuthName This and That
    
    
    you will need to change it to
    
     AuthName "This and That"
    
    
    This change was made for consistency in the config language.
  Unrecognized method names in the server configuration files will result in the server logging an error message and failing to start. In .htaccess files, unknown methods will cause the server to log an error to its error log and return an 'Internal Server Error' page to the client.
    NameVirtualHost directive (one directive per pair).
    Previously this support was given implicitly on the "main server
    address".  Now it has to be explicitly listed so as to avoid many
    problems that users had.
    Please see the Apache Virtual Host
    documentation for further details on configuration.
  HostnameLookups defaults to Off.
  mod_access
    syntax "allow user-agents" was removed.  The replacement is the
    more general "allow from env".
  <Directory> directives,
    for example.
  TransferLog directive is given then nothing will
    be logged.
    (Previously it would default to logs/access_log.)
  ServerType inetd has been deprecated.  It still exists,
    but bugs are unlikely to be fixed.
  httpd_monitor has been deprecated.  The replacement is
    to use mod_status and make a request to a URL such as
    http://myhost/server-status?refresh=10.
  "nph-" CGIs, which formerly provided a direct socket to the client without any server post-processing, were not fully compatible with HTTP/1.1 or SSL support. As such they would have had to implement the transport details, such as encryption or chunking, in order to work properly in certain situations. Now, the only difference between nph and non-nph scripts is "non-parsed headers".
dbmmanage has been overhauled.
The following changes between the 1.2 and 1.3 API may require slight changes in third party modules not maintained by Apache.
ap_' was globally applied to the following
   classes of symbols: Apache provided general functions (e.g.,
   ap_cpystrn), public API functions (e.g.,
   palloc,
   bgets) and private functions which can't be made static
   (because of cross-object usage) but should be (e.g.,
   new_connection).  For backward source compatibility with
   Apache 1.2 a new header file named compat.h was created which
   provides defines for the old symbol names.
   You'll either have to #include compat.h or update the API
   symbols you use.
  const char *ap_get_server_version().
  ap_construct_url prototype change.  The second parameter
    was previously a server_rec, it has been changed to
    a request_rec.
  table datatype has been made an opaque type.
    Code which assumes a table is the same as an
    array_header will not compile.  This is actually a
    change to enforce the API the way it was intended, all versions
    of Apache have had a table_elts() function which
    is intended for code which needs to access the elements of
    a table.  The changes required for this are pretty easy, and
    work with all versions of Apache.
    Suppose t is a table.  Whenever code refers to
    t->elts, replace it with something like this:
    array_header *arr = table_elts(t);
    table_entry *elts = (table_entry *)arr->elts;
t->nelts use
    arr->nelts.  Many examples can be found in
    the standard modules, search for table_elts.
  