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.
Änderungen der Konfiguration bei der Kompilierung
- Der Apache benutzt jetzt ein
autoconf- undlibtool-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.
Ä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 mitPATH_INFOmehr. Filter wie INCLUDES oder PHP sind gleich oben im Core-Handler implementiert und weisen deshalb Requests mitPATH_INFOab. Sie können dieAcceptPathInfo-Direktive verwenden, um den Core-Handler zu zwingen, Requests mitPATH_INFOzu akzeptieren, und dadurch die Fähigkeit wiederherstellen,PATH_INFOin Server Side Includes zu benutzen. - Die
CacheNegotiatedDocs-Direktive hat jetzt das Argument an (on) oder aus (off). Die vorhandenen AnweisungenCacheNegotiatedDocssollten durchCacheNegotiatedDocs onersetzt 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 wiedurchErrorDocument 403 "Eine Nachrichtersetzt werden. Solange das zweite Argument kein gültiger URL oder Pfadname ist, wird es als Textnachricht behandelt.ErrorDocument 403 "Eine Nachricht" - Die Direktiven
AccessConfigundResourceConfigsind entfallen. Diese Direktiven können durch dieInclude-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öglicherweiseInclude conf/access.confundInclude conf/srm.confzu Ihrerhttpd.confhinzufügen. Um sicherzustellen, daß der Apache die Konfigurationsdateien in der gleichen Reihenfolge liest, wie sie von den älteren Direktiven impliziert wurde, sollten dieInclude-Direktiven ans Ende derhttpd.confgestellt werden, wobei die Direktive fürsrm.confderjenigen füraccess.confvorangeht. - Die Direktiven
BindAddressundPortsind entfallen. Eine äquivalente Funktionalität wird von der flexibleren DirektiveListenbereitgestellt. - Im Apache 1.3 wurde die
Port-Direktive außerdem dazu verwendet, die Portnummer für selbstreferenzierende URLs festzulegen. Die neueServerName-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_agentundmod_log_referer, welche die DirektivenAgentLog,RefererLogundRefererIgnorebereitgestellt hatten, wurden entfernt. Durch Verwendung der DirektiveCustomLogaus mod_log_config sind die Agent- und Refererlogs auch weiterhin verfügbar. - Die Direktiven
AddModuleundClearModuleListsind 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
FancyIndexingwurde entfernt. Die gleiche Funktionalität ist nun mit der OptionFancyIndexingder DirektiveIndexOptionsverfügbar. - Die von
mod_negotiationbereitgestellte 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 DirektiveMultiviewsMatchwiederhergestellt werden. - (Ab Version 2.0.51)
ErrorHeaderwar eine Fehlbenennung, weshalb die Funktionalität dieser Direktive mit derHeader-Anweisung zusammengelegt wurde. Verwenden Sie stattdessenHeader always set foo barum den gleichen Effekt zu erzielen.
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 Modulmod_file_cacheersetzt. - 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.
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.


