Upgrade von 1.3 auf 2.0 - Apache HTTP Server

Apache Server 2.0

Apache HTTP Server Version 2.0

<-

Upgrade von 1.3 auf 2.0

Dieses Dokument dient der Unterstützung beim Upgrade. Es enthält die entscheidenden Informationen für bisherige Apache-Nutzer. Diese sind als kurze Anmerkungen gedacht. Weitere Informationen finden Sie entweder unter Neue Funktionen oder in den src/CHANGES-Dateien.

top

Änderungen der Konfiguration bei der Kompilierung

  • Der Apache benutzt jetzt ein autoconf- und libtool-System zur Konfiguration des Erstellungsverfahrens. Die Verwendung dieses Systems ist ähnlich, aber nicht identisch mit dem APACI-System des Apache 1.3.
  • Zusätzlich zu der üblichen Auswahl von Modulen, die kompiliert werden sollen, wurde der Hauptteil der Request-Verarbeitung im Apache 2.0 in die Multi-Processing-Module (MPMs) verschoben.
top

Änderungen der Laufzeit-Konfiguration

  • Viele Anweisungen aus dem Serverkern des Apache 1.3 sind jetzt in den MPMs enthalten. Wenn Sie ein Serververhalten wünschen, das demjenigen des Apache 1.3 möglichst ähnlich ist, sollten Sie das prefork-MPM auswählen. Andere MPMs verwenden abweichende Anweisungen für die Prozess-Erstellung und Request-Verarbeitung.
  • Das Proxy-Modul wurde umgearbeitet, um es auf den Stand von HTTP/1.1 zu bringen. Eine der bedeutendsten Änderungen ist die Platzierung der Proxy-Zugriffskontrolle innerhalb eines <Proxy>-Blocks, statt innerhalb eines <Directory proxy:>-Blocks.
  • Die Behandlung von PATH_INFO (hinter dem tatsächlichen Dateinamen angefügte Pfadangaben) wurde für einige Module geändert. Module, die bisher als Handler implementiert waren, jetzt aber als Filter implementiert sind, akzeptieren möglicherweise keine Requests mit PATH_INFO mehr. Filter wie INCLUDES oder PHP sind gleich oben im Core-Handler implementiert und weisen deshalb Requests mit PATH_INFO ab. Sie können die AcceptPathInfo-Direktive verwenden, um den Core-Handler zu zwingen, Requests mit PATH_INFO zu akzeptieren, und dadurch die Fähigkeit wiederherstellen, PATH_INFO in Server Side Includes zu benutzen.
  • Die CacheNegotiatedDocs-Direktive hat jetzt das Argument an (on) oder aus (off). Die vorhandenen Anweisungen CacheNegotiatedDocs sollten durch CacheNegotiatedDocs on ersetzt werden.
  • Die ErrorDocument-Direktive verwendet kein Anführungszeichen mehr am Anfang des Arguments, um eine Textnachricht anzuzeigen. Stattdessen sollten Sie die Nachricht in doppelte Anführungszeichen einschließen. Zum Beispiel sollten existierende Angaben wie

    ErrorDocument 403 "Eine Nachricht

    durch

    ErrorDocument 403 "Eine Nachricht"

    ersetzt werden. Solange das zweite Argument kein gültiger URL oder Pfadname ist, wird es als Textnachricht behandelt.
  • Die Direktiven AccessConfig und ResourceConfig sind entfallen. Diese Direktiven können durch die Include-Direktive ersetzt werden, die eine äquivalente Funktionalität besitzt. Wenn Sie die Defaultwerte dieser Direktiven verwendet haben, ohne sie in die Konfigurationsdateien einzufügen, müssen Sie möglicherweise Include conf/access.conf und Include conf/srm.conf zu Ihrer httpd.conf hinzufügen. Um sicherzustellen, daß der Apache die Konfigurationsdateien in der gleichen Reihenfolge liest, wie sie von den älteren Direktiven impliziert wurde, sollten die Include-Direktiven ans Ende der httpd.conf gestellt werden, wobei die Direktive für srm.conf derjenigen für access.conf vorangeht.
  • Die Direktiven BindAddress und Port sind entfallen. Eine äquivalente Funktionalität wird von der flexibleren Direktive Listen bereitgestellt.
  • Im Apache 1.3 wurde die Port-Direktive außerdem dazu verwendet, die Portnummer für selbstreferenzierende URLs festzulegen. Die neue ServerName-Syntax stellt das Apache-2.0-Äquivalent dar: sie wurde dahingehend verändert, sowohl den Hostnamen als auch die Portnummer für selbstreferenzierende URLs in einer Direktive angeben zu können.
  • Die ServerType-Direktive entfällt. Die Methode zum Bedienen der Requests wird nun durch die Auswahl des MPM ermittelt. Derzeit ist kein MPM dafür bestimmt, von inetd gestartet zu werden.
  • Die Module mod_log_agent und mod_log_referer, welche die Direktiven AgentLog, RefererLog und RefererIgnore bereitgestellt hatten, wurden entfernt. Durch Verwendung der Direktive CustomLog aus mod_log_config sind die Agent- und Refererlogs auch weiterhin verfügbar.
  • Die Direktiven AddModule und ClearModuleList sind entfallen. Diese Direktiven wurden benutzt, um sicherzustellen, daß die Module in der richtigen Reihenfolge aktiviert werden können. Die neue Apache 2.0 API erlaubt es Modulen, ihre Reihenfolge explizit anzugeben, und macht diese Direktiven damit überflüssig.
  • Die Direktive FancyIndexing wurde entfernt. Die gleiche Funktionalität ist nun mit der Option FancyIndexing der Direktive IndexOptions verfügbar.
  • Die von mod_negotiation bereitgestellte Content-Negotiation-Technik MultiViews führt nun eine strengere Dateierkennung durch. Es wird ausschließlich unter den aushandelbaren Dateien gewählt. Das bisherige Verhalten kann jedoch mit der Direktive MultiviewsMatch wiederhergestellt werden.
  • (Ab Version 2.0.51)

    ErrorHeader war eine Fehlbenennung, weshalb die Funktionalität dieser Direktive mit der Header-Anweisung zusammengelegt wurde. Verwenden Sie stattdessen

    Header always set foo bar

    um den gleichen Effekt zu erzielen.

top

Sonstige Änderungen

  • Das Modul mod_auth_digest, das im Apache 1.3 experimentellen Status hatte, ist nun ein Standardmodul.
  • Das Modul mod_mmap_static, das im Apache 1.3 experimentellen Status hatte, wurde durch das Modul mod_file_cache ersetzt.
  • Die Distribution wurde komplett reorganisiert und enthält kein unabhängiges src-Verzeichnis mehr. Stattdessen wurden die Quellcodes logisch unterhalb des Hauptverzeichnisses der Distribution angeordnet. Installationen des kompilierten Servers sollten in ein separates Verzeichnis erfolgen.
top

Module von Drittanbietern

An der API des Apache 2.0 wurden umfassende Änderungen vorgenommen. Bestehende Module, die für die Apache 1.3 API entwickelt wurden, werden nicht ohne Modifikationen mit der Version 2.0 des Apache zusammenarbeiten. Details sind in der Dokumentation für Entwickler beschrieben.