![[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;
        
        Whenever code refers to t->nelts use
        arr->nelts. Many examples can be found in
        the standard modules, search for table_elts.
      