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.
Ä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_INFO
mehr. Filter wie INCLUDES oder PHP sind gleich oben im Core-Handler implementiert und weisen deshalb Requests mitPATH_INFO
ab. Sie können dieAcceptPathInfo
-Direktive verwenden, um den Core-Handler zu zwingen, Requests mitPATH_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 AnweisungenCacheNegotiatedDocs
sollten durchCacheNegotiatedDocs 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 wiedurchErrorDocument 403 "Eine Nachricht
ersetzt werden. Solange das zweite Argument kein gültiger URL oder Pfadname ist, wird es als Textnachricht behandelt.ErrorDocument 403 "Eine Nachricht"
- Die Direktiven
AccessConfig
undResourceConfig
sind 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.conf
undInclude conf/srm.conf
zu Ihrerhttpd.conf
hinzufü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.conf
gestellt werden, wobei die Direktive fürsrm.conf
derjenigen füraccess.conf
vorangeht. - Die Direktiven
BindAddress
undPort
sind entfallen. Eine äquivalente Funktionalität wird von der flexibleren DirektiveListen
bereitgestellt. - 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_agent
undmod_log_referer
, welche die DirektivenAgentLog
,RefererLog
undRefererIgnore
bereitgestellt hatten, wurden entfernt. Durch Verwendung der DirektiveCustomLog
aus mod_log_config sind die Agent- und Refererlogs auch weiterhin verfügbar. - Die Direktiven
AddModule
undClearModuleList
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 OptionFancyIndexing
der DirektiveIndexOptions
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 DirektiveMultiviewsMatch
wiederhergestellt werden. - (Ab Version 2.0.51)
ErrorHeader
war eine Fehlbenennung, weshalb die Funktionalität dieser Direktive mit derHeader
-Anweisung zusammengelegt wurde. Verwenden Sie stattdessenHeader always set foo bar
um 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_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.
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.